大大的豆芽 před 11 měsíci
rodič
revize
f8fa126ec1

+ 1 - 1
src/views/monitor/logininfor/index.vue

@@ -97,7 +97,7 @@
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
 
-    <el-table ref="tables" v-loading="loading" :data="list" @selection-change="handleSelectionChange" :default-sort="defaultSort" @sort-change="handleSortChange">
+    <el-table ref="tables" fit highlight-current-row border stripe v-loading="loading" :data="list" @selection-change="handleSelectionChange" :default-sort="defaultSort" @sort-change="handleSortChange">
       <el-table-column type="selection" width="55" align="center" />
       <el-table-column label="访问编号" align="center" prop="infoId" />
       <el-table-column label="用户名称" align="center" prop="userName" :show-overflow-tooltip="true" sortable="custom" :sort-orders="['descending', 'ascending']" />

+ 1 - 1
src/views/monitor/operlog/index.vue

@@ -101,7 +101,7 @@
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
 
-    <el-table ref="tables" v-loading="loading" :data="list" @selection-change="handleSelectionChange" :default-sort="defaultSort" @sort-change="handleSortChange">
+    <el-table ref="tables" v-loading="loading" fit highlight-current-row border stripe :data="list" @selection-change="handleSelectionChange" :default-sort="defaultSort" @sort-change="handleSortChange">
       <el-table-column type="selection" width="55" align="center" />
       <el-table-column label="日志编号" align="center" prop="operId" />
       <el-table-column label="系统模块" align="center" prop="title" />

+ 3 - 3
src/views/system/dept/index.vue

@@ -53,12 +53,12 @@
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
 
-    <el-table
-      v-if="refreshTable"
+    <el-table 
+      v-if="refreshTable" fit highlight-current-row border stripe
       v-loading="loading"
       :data="deptList"
       row-key="deptId"
-      :default-expand-all="isExpandAll"
+      :default-expand-all="isExpandAll" 
       :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
     >
       <el-table-column prop="deptName" label="部门名称" width="260"></el-table-column>

+ 1 - 1
src/views/system/document/index.vue

@@ -1,7 +1,7 @@
 <template>
     <div class="app-container">
         <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
-            <el-form-item label="文档编号" prop="code">
+            <el-form-item  prop="code">
                 <el-select v-model="queryParams.code" placeholder="请选择文档编号" clearable>
                     <el-option v-for="dict in dict.type.sys_document_type" :key="dict.value" :label="dict.label" :value="dict.value" />
                 </el-select>

+ 552 - 547
src/views/system/factory/add_factory.vue

@@ -1,571 +1,576 @@
 <template>
-	<div v-loading="dialogLoading" :element-loading-text="loadingText">
+  <div v-loading="dialogLoading" :element-loading-text="loadingText">
 
-		<el-row :gutter="15" >
-			<el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="100px">
-				<el-col :span="12">
-					<el-form-item label="工厂名称" prop="factoryName">
-						<el-input v-model="formData.factoryName" placeholder="请输入工厂名称" clearable
-							:style="{width: '100%'}" size="medium"></el-input>
-					</el-form-item>
-				</el-col>
-				<el-col :span="12">
-					<el-form-item label="负责人名称" prop="applyName">
-						<el-input v-model="formData.applyName" placeholder="请输入负责人名称" clearable :style="{width: '100%'}"
-							size="medium"></el-input>
-					</el-form-item>
-				</el-col>
-				<el-col :span="12">
-					<el-form-item label="联系方式" prop="applyPhone">
-						<el-input v-model="formData.applyPhone" placeholder="请输入联系方式" clearable
-							:style="{width: '100%'}"></el-input>
-					</el-form-item>
-				</el-col>
-				<el-col :span="12">
-					<el-form-item label="身份证号码" prop="applyIdCard">
-						<el-input v-model="formData.applyIdCard" placeholder="请输入身份证号码" clearable
-							:style="{width: '100%'}"></el-input>
-					</el-form-item>
-				</el-col>
-				<el-col :span="8">
-					<el-form-item label="所属省份" prop="provinceId">
-						<el-select size="small" style="width: 200px" v-model="formData.provinceId"
-							placeholder="请选择省份(直辖市)" v-on:change="changeProvince()">
-							<el-option v-for="item in provinces" :label="item.areaName" :value="item.areaId"
-								:key="item.areaName">
-							</el-option>
-						</el-select>
-					</el-form-item>
-				</el-col>
-				<el-col :span="8">
-					<el-form-item label="所属城市" prop="cityId">
-						<el-select size="small" style="width: 200px;margin-left: 10px" v-model="formData.cityId"
-							placeholder="请选择城市" v-on:change="changeCity">
-							<el-option v-for="item in citys" :label="item.areaName" :value="item.areaId"
-								:key="item.areaName">
-							</el-option>
-						</el-select>
-					</el-form-item>
-				</el-col>
-				<el-col :span="8">
-					<el-form-item label="所属地区" prop="areaId">
-						<el-select size="small" style="width: 200px;margin-left: 10px" v-model="formData.areaId"
-							placeholder="请选择区(县)" v-on:change="changeArea">
-							<el-option v-for="item in areas" :label="item.areaName" :value="item.areaId"
-								:key="item.areaName">
-							</el-option>
-						</el-select>
-					</el-form-item>
-				</el-col>
-				<el-col :span="24">
-					<el-form-item label="搜索地址" prop="address">
-						<el-autocomplete style="width:100%;" popper-class="autoAddressClass" v-model="formData.address"
-							:fetch-suggestions="querySearchAsync" :trigger-on-focus="false" placeholder="详细地址"
-							@select="handleSelect" clearable>
-							<template slot-scope="{ item }">
-								<em class="el-icon-search fl mgr10" />
-								<div style="overflow:hidden;">
-									<div class="title" style="display:table-cell">{{ item.title }}</div>
-									<span class="address ellipsis">{{ item.address }}</span>
-								</div>
-							</template>
-						</el-autocomplete>
-						<div id="baidu-map-container"
-							style="width: 100%;margin-top: 20px;margin-bottom: 20px; height: 400px;"></div>
-					</el-form-item>
-				</el-col>
+    <el-row :gutter="15">
+      <el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="100px">
+        <el-col :span="12">
+          <el-form-item label="工厂名称" prop="factoryName">
+            <el-input v-model="formData.factoryName" placeholder="请输入工厂名称" clearable :style="{width: '100%'}" size="medium"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="负责人名称" prop="applyName">
+            <el-input v-model="formData.applyName" placeholder="请输入负责人名称" clearable :style="{width: '100%'}" size="medium"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="联系方式" prop="applyPhone">
+            <el-input v-model="formData.applyPhone" placeholder="请输入联系方式" clearable :style="{width: '100%'}"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="身份证号码" prop="applyIdCard">
+            <el-input v-model="formData.applyIdCard" placeholder="请输入身份证号码" clearable :style="{width: '100%'}"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="所属省份" prop="provinceId">
+            <el-select size="small" style="width: 200px" v-model="formData.provinceId" placeholder="请选择省份(直辖市)" v-on:change="changeProvince()">
+              <el-option v-for="item in provinces" :label="item.areaName" :value="item.areaId" :key="item.areaName">
+              </el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="所属城市" prop="cityId">
+            <el-select size="small" style="width: 200px;margin-left: 10px" v-model="formData.cityId" placeholder="请选择城市" v-on:change="changeCity">
+              <el-option v-for="item in citys" :label="item.areaName" :value="item.areaId" :key="item.areaName">
+              </el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="所属地区" prop="areaId">
+            <el-select size="small" style="width: 200px;margin-left: 10px" v-model="formData.areaId" placeholder="请选择区(县)" v-on:change="changeArea">
+              <el-option v-for="item in areas" :label="item.areaName" :value="item.areaId" :key="item.areaName">
+              </el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="24">
+          <el-form-item label="搜索地址" prop="address">
+            <el-autocomplete style="width:100%;" popper-class="autoAddressClass" v-model="formData.address" :fetch-suggestions="querySearchAsync"
+              :trigger-on-focus="false" placeholder="详细地址" @select="handleSelect" clearable>
+              <template slot-scope="{ item }">
+                <em class="el-icon-search fl mgr10" />
+                <div style="overflow:hidden;">
+                  <div class="title" style="display:table-cell">{{ item.title }}</div>
+                  <span class="address ellipsis">{{ item.address }}</span>
+                </div>
+              </template>
+            </el-autocomplete>
+            <div id="baidu-map-container" style="width: 100%;margin-top: 20px;margin-bottom: 20px; height: 400px;"></div>
+          </el-form-item>
+        </el-col>
 
-				<el-col :span="24">
-					<el-form-item label="门牌号" prop="detailAddress">
-						<el-input v-model="formData.detailAddress" placeholder="请输入门牌号" clearable
-							:style="{width: '100%'}" size="medium"></el-input>
-					</el-form-item>
-				</el-col>
+        <el-col :span="24">
+          <el-col :span="12">
+            <el-form-item label="业务区域" prop="bindAreaId">
+              <el-select size="small"  v-model="formData.bindAreaId" placeholder="请选择业务区域">
+                <el-option v-for="item in bindAreas" :label="item.name" :value="item.id" :key="item.name">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="门牌号" prop="detailAddress">
+              <el-input v-model="formData.detailAddress" placeholder="请输入门牌号" clearable :style="{width: '100%'}" size="medium"></el-input>
+            </el-form-item>
+          </el-col>
 
+        </el-col>
 
-				<el-col :span="24">
-					<el-form-item label="工厂简介" prop="content">
-						<el-input v-model="formData.content" type="textarea" placeholder="请输入工厂简介" :rows="5" />
-					</el-form-item>
-				</el-col>
-				<el-col :span="24">
-					<el-form-item label="营业执照" prop="businessLicensePic">
-						<el-upload ref="businessLicensePic" :file-list="businessLicensePicfileList"
-							:action="businessLicensePicAction" :before-upload="businessLicensePicBeforeUpload"
-							:on-success="businessUploadSuccess" :on-remove="businessOnRemove" list-type="picture"
-							accept="image/*">
-							<el-button size="small" type="primary" icon="el-icon-upload">点击上传</el-button>
-						</el-upload>
-					</el-form-item>
-				</el-col>
-				<el-col :span="24">
-					<el-form-item label="工厂照片" prop="factoryPic">
-						<el-upload ref="factoryPic" :file-list="factoryPicfileList" :action="businessLicensePicAction"
-							:before-upload="factoryPicBeforeUpload" :on-success="factoryUploadSuccess"
-							:on-remove="factoryOnRemove" list-type="picture" accept="image/*">
-							<el-button size="small" type="primary" icon="el-icon-upload">点击上传</el-button>
-						</el-upload>
-					</el-form-item>
-				</el-col>
+        <el-col :span="24">
+          <el-form-item label="工厂简介" prop="content">
+            <el-input v-model="formData.content" type="textarea" placeholder="请输入工厂简介" :rows="5" />
+          </el-form-item>
+        </el-col>
+        <el-col :span="24">
+          <el-form-item label="营业执照" prop="businessLicensePic">
+            <el-upload ref="businessLicensePic" :file-list="businessLicensePicfileList" :action="businessLicensePicAction"
+              :before-upload="businessLicensePicBeforeUpload" :on-success="businessUploadSuccess" :on-remove="businessOnRemove" list-type="picture"
+              accept="image/*">
+              <el-button size="small" type="primary" icon="el-icon-upload">点击上传</el-button>
+            </el-upload>
+          </el-form-item>
+        </el-col>
+        <el-col :span="24">
+          <el-form-item label="工厂照片" prop="factoryPic">
+            <el-upload ref="factoryPic" :file-list="factoryPicfileList" :action="businessLicensePicAction" :before-upload="factoryPicBeforeUpload"
+              :on-success="factoryUploadSuccess" :on-remove="factoryOnRemove" list-type="picture" accept="image/*">
+              <el-button size="small" type="primary" icon="el-icon-upload">点击上传</el-button>
+            </el-upload>
+          </el-form-item>
+        </el-col>
 
-			</el-form>
-		</el-row>
-		<div slot="footer" class="dialog-footer">
-			<el-button type="primary" @click="submitForm" style="margin-left: 5%">提交</el-button>
-			<el-button @click="closeDialog">取 消</el-button>
-		</div>
-	</div>
+      </el-form>
+    </el-row>
+    <div slot="footer" class="dialog-footer">
+      <el-button type="primary" @click="submitForm" style="margin-left: 5%">提交</el-button>
+      <el-button @click="closeDialog">取 消</el-button>
+    </div>
+  </div>
 </template>
 
 <script>
-	import request from '@/utils/request';
-	import {
-		getFactory,
-		addFactory,
-		updateFactory
-	} from "@/api/system/factory";
+import request from '@/utils/request';
+import { listStoreArea } from '@/api/system/storeArea'
+import {
+  getFactory,
+  addFactory,
+  updateFactory
+} from "@/api/system/factory";
 
-	export function listArea(query) {
-		return request({
-			url: '/system/area/list',
-			method: 'get',
-			params: query
-		})
-	}
+export function listArea(query) {
+  return request({
+    url: '/system/area/list',
+    method: 'get',
+    params: query
+  })
+}
 
-	export default {
-		inheritAttrs: false,
-		components: {},
-		props: [],
-		data() {
-			return {
-				dialogLoading: true,
-				loadingText: '查询中',
-				formData: {
-					factoryName: undefined,
-					applyName: undefined,
-					applyPhone: undefined,
-					applyIdCard: undefined,
-					provinceId: undefined,
-					cityId: undefined,
-					areaId: undefined,
-					content: undefined,
-					businessLicensePic: null,
-					factoryPic: null,
-					province: '', // 省
-					city: '', // 市
-					area: '', // 区
-					address: '',
-					detailAddress: ''
-				},
-				rules: {
-					factoryName: [{
-						required: true,
-						message: '请输入工厂名称',
-						trigger: 'blur'
-					}],
-					applyName: [{
-						required: true,
-						message: '请输入负责人名称',
-						trigger: 'blur'
-					}],
-					applyPhone: [{
-						required: true,
-						trigger: 'blur',
-						validator: this.checkPhone
-					}],
-					applyIdCard: [{
-						required: true,
-						trigger: 'blur',
-						validator: this.checkIdCardNumber
-					}],
-					provinceId: [{
-						required: true,
-						message: '请选择所属省份',
-						trigger: 'change'
-					}],
-					cityId: [{
-						required: true,
-						message: '请选择所属城市',
-						trigger: 'change'
-					}],
-					areaId: [{
-						required: true,
-						message: '请选择所属地区',
-						trigger: 'change'
-					}],
-					content: [{
-						required: true,
-						message: '请输入工厂简介',
-						trigger: 'blur'
-					}],
-					address: [{
-						required: true,
-						message: '请输入具体地址',
-						trigger: 'blur'
-					}],
+export default {
+  inheritAttrs: false,
+  components: {},
+  props: [],
+  data() {
+    return {
+      dialogLoading: true,
+      loadingText: '查询中',
+      formData: {
+        factoryName: undefined,
+        applyName: undefined,
+        applyPhone: undefined,
+        applyIdCard: undefined,
+        provinceId: undefined,
+        cityId: undefined,
+        areaId: undefined,
+        content: undefined,
+        businessLicensePic: null,
+		bindAreaId: null,
+        factoryPic: null,
+        province: '', // 省
+        city: '', // 市
+        area: '', // 区
+        address: '',
+        detailAddress: ''
+      },
+      rules: {
+        factoryName: [{
+          required: true,
+          message: '请输入工厂名称',
+          trigger: 'blur'
+        }],
+        applyName: [{
+          required: true,
+          message: '请输入负责人名称',
+          trigger: 'blur'
+        }],
+        applyPhone: [{
+          required: true,
+          trigger: 'blur',
+          validator: this.checkPhone
+        }],
+        applyIdCard: [{
+          required: true,
+          trigger: 'blur',
+          validator: this.checkIdCardNumber
+        }],
+        provinceId: [{
+          required: true,
+          message: '请选择所属省份',
+          trigger: 'change'
+        }],
+        cityId: [{
+          required: true,
+          message: '请选择所属城市',
+          trigger: 'change'
+        }],
+        areaId: [{
+          required: true,
+          message: '请选择所属地区',
+          trigger: 'change'
+        }],
+        content: [{
+          required: true,
+          message: '请输入工厂简介',
+          trigger: 'blur'
+        }],
+        address: [{
+          required: true,
+          message: '请输入具体地址',
+          trigger: 'blur'
+        }],
 
-				},
-				businessLicensePicAction: `${process.env.VUE_APP_BASE_API}` + '/common/uploadOSS',
-				businessLicensePicfileList: [],
-				factoryPicAction: `${process.env.VUE_APP_BASE_API}` + '/common/uploadOSS',
-				factoryPicfileList: [],
-				provinces: [],
-				citys: [],
-				areas: []
-			}
-		},
-		computed: {},
-		watch: {},
-		created() {
-			this.getProvince(1);
-		},
-		async mounted() {
-			await this.loadBMap('muIMwle2eOkTHf453rwRNgMa0W83j2PX') //加载引入BMap
-			this.initBaiduMap()
-		},
-		methods: {
-			checkPhone(rule, value, callback) {
-				const regex = /^1[0-9]{10}$/; // 手机号正则表达式
-				if (!regex.test(value)) {
-					callback(new Error('请输入正确的手机号'));
-				} else {
-					callback();
-				}
-			},
-			checkIdCardNumber(rule, value, callback) {
-				const regex = /^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}[0-9Xx]$/; // 身份证正则表达式
-				if (!regex.test(value)) {
-					callback(new Error('请输入正确的身份证号码'));
-				} else {
-					callback();
-				}
+      },
+      businessLicensePicAction: `${process.env.VUE_APP_BASE_API}` + '/common/uploadOSS',
+      businessLicensePicfileList: [],
+      factoryPicAction: `${process.env.VUE_APP_BASE_API}` + '/common/uploadOSS',
+      factoryPicfileList: [],
+      provinces: [],
+	  bindAreas: [],
+      citys: [],
+      areas: []
+    }
+  },
+  computed: {},
+  watch: {},
+  created() {
+    this.getProvince(1);
+	this.getBindAreas();
+  },
+  async mounted() {
+    await this.loadBMap('muIMwle2eOkTHf453rwRNgMa0W83j2PX') //加载引入BMap
+    this.initBaiduMap()
+  },
+  methods: {
+    checkPhone(rule, value, callback) {
+      const regex = /^1[0-9]{10}$/; // 手机号正则表达式
+      if (!regex.test(value)) {
+        callback(new Error('请输入正确的手机号'));
+      } else {
+        callback();
+      }
+    },
+    checkIdCardNumber(rule, value, callback) {
+      const regex = /^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}[0-9Xx]$/; // 身份证正则表达式
+      if (!regex.test(value)) {
+        callback(new Error('请输入正确的身份证号码'));
+      } else {
+        callback();
+      }
 
-			},
-			setInitData(factoryId) {
-				this.id = factoryId
-				this.businessLicensePicfileList = []
-				this.factoryPicfileList = []
-				if (factoryId != undefined && factoryId != '') {
-					this.dialogLoading = true
-					this.loadingText = '查询中'
-					getFactory(this.id).then(res => {
-						this.formData = res.data
-						//获取所属城市和所属地区
-						this.getProvince(2, this.formData.provinceId);
-						this.getProvince(3, this.formData.cityId);
-						this.dialogLoading = false
-						//地图定位
-						var point = new BMap.Point(this.formData.orgLon, this.formData.orgLat);
-						this.map.centerAndZoom(point, 19)
-						this.mk = new BMap.Marker(point, {
-							enableDragging: true
-						}) //创建一个图像标注实例,enableDragging:是否启用拖拽,默认为false
-						this.map.addOverlay(this.mk) //将覆盖物添加到地图中
+    },
+    setInitData(factoryId) {
+      this.id = factoryId
+      this.businessLicensePicfileList = []
+      this.factoryPicfileList = []
+      if (factoryId != undefined && factoryId != '') {
+        this.dialogLoading = true
+        this.loadingText = '查询中'
+        getFactory(this.id).then(res => {
+          this.formData = res.data
+          //获取所属城市和所属地区
+          this.getProvince(2, this.formData.provinceId);
+          this.getProvince(3, this.formData.cityId);
+          this.dialogLoading = false
+          //地图定位
+          var point = new BMap.Point(this.formData.orgLon, this.formData.orgLat);
+          this.map.centerAndZoom(point, 19)
+          this.mk = new BMap.Marker(point, {
+            enableDragging: true
+          }) //创建一个图像标注实例,enableDragging:是否启用拖拽,默认为false
+          this.map.addOverlay(this.mk) //将覆盖物添加到地图中
 
-						if (this.formData.businessLicensePic) {
-							this.businessLicensePicfileList = [{
-								url: this.formData.businessLicensePic
-							}]
-						}
-						if (this.formData.factoryPic) {
-							this.factoryPicfileList = [{
-								url: this.formData.factoryPic
-							}]
-						}
-						this.resetForm('elForm')
-					}).catch(e => {
-						this.dialogLoading = false
-						this.$message.error(e.data.msg)
-					})
-				} else {
-					this.dialogLoading = false
-				}
-			},
-			/** 获取省份 */
-			getProvince(level, parentId) {
-				let provinceParams = {
-					"level": level,
-					"parentId": parentId
-				};
-				listArea(provinceParams).then(response => {
-					if (level === 1) {
-						this.provinces = response.data;
-					} else if (level === 2) {
-						this.citys = response.data;
-					} else {
-						this.areas = response.data;
-					}
-				});
-			},
-			/** 获取城市 */
-			changeProvince() {
-				let cityParams = {
-					"parentId": this.formData.provinceId
-				};
-				const selectedOption = this.provinces.find(option => option.areaId === this.formData.provinceId);
-				this.formData.province = selectedOption ? selectedOption.areaName : null;
-				listArea(cityParams).then(response => {
-					this.citys = response.data;
-				});
-				if (this.formData.cityId != null) {
-					this.formData.cityId = null;
-					this.formData.areaId = null;
-					this.areas = [];
-				}
-			},
-			/** 获取区县 */
-			changeCity() {
-				let cityParams = {
-					"parentId": this.formData.cityId
-				};
-				const selectedOption = this.citys.find(option => option.areaId === this.formData.cityId);
-				this.formData.city = selectedOption ? selectedOption.areaName : null;
-				listArea(cityParams).then(response => {
-					this.areas = response.data;
-				});
-				if (this.formData.areaId != null) {
-					this.formData.areaId = null;
-				}
-			},
-			/** 获取区县 */
-			changeArea() {
+          if (this.formData.businessLicensePic) {
+            this.businessLicensePicfileList = [{
+              url: this.formData.businessLicensePic
+            }]
+          }
+          if (this.formData.factoryPic) {
+            this.factoryPicfileList = [{
+              url: this.formData.factoryPic
+            }]
+          }
+          this.resetForm('elForm')
+        }).catch(e => {
+          this.dialogLoading = false
+          this.$message.error(e.data.msg)
+        })
+      } else {
+        this.dialogLoading = false
+      }
+    },
+	//获取绑定的区域
+	getBindAreas(){
+		listStoreArea({ pageSize: 10000, pageNum: 1, status: '0' }).then((res) => {
+                this.bindAreas = res.rows
+            })
+	},
+    /** 获取省份 */
+    getProvince(level, parentId) {
+      let provinceParams = {
+        "level": level,
+        "parentId": parentId
+      };
+      listArea(provinceParams).then(response => {
+        if (level === 1) {
+          this.provinces = response.data;
+        } else if (level === 2) {
+          this.citys = response.data;
+        } else {
+          this.areas = response.data;
+        }
+      });
+    },
+    /** 获取城市 */
+    changeProvince() {
+      let cityParams = {
+        "parentId": this.formData.provinceId
+      };
+      const selectedOption = this.provinces.find(option => option.areaId === this.formData.provinceId);
+      this.formData.province = selectedOption ? selectedOption.areaName : null;
+      listArea(cityParams).then(response => {
+        this.citys = response.data;
+      });
+      if (this.formData.cityId != null) {
+        this.formData.cityId = null;
+        this.formData.areaId = null;
+        this.areas = [];
+      }
+    },
+    /** 获取区县 */
+    changeCity() {
+      let cityParams = {
+        "parentId": this.formData.cityId
+      };
+      const selectedOption = this.citys.find(option => option.areaId === this.formData.cityId);
+      this.formData.city = selectedOption ? selectedOption.areaName : null;
+      listArea(cityParams).then(response => {
+        this.areas = response.data;
+      });
+      if (this.formData.areaId != null) {
+        this.formData.areaId = null;
+      }
+    },
+    /** 获取区县 */
+    changeArea() {
 
-				const selectedOption = this.areas.find(option => option.areaId === this.formData.areaId);
-				this.formData.area = selectedOption ? selectedOption.areaName : null;
+      const selectedOption = this.areas.find(option => option.areaId === this.formData.areaId);
+      this.formData.area = selectedOption ? selectedOption.areaName : null;
 
-			},
-			submitForm() {
-				this.$refs['elForm'].validate(valid => {
-					if (!valid) return
-					// TODO 提交表单
-					console.log(this.formData);
+    },
+    submitForm() {
+      this.$refs['elForm'].validate(valid => {
+        if (!valid) return
+        // TODO 提交表单
+        console.log(this.formData);
 
-					if (this.businessLicensePicfileList && this.businessLicensePicfileList.length > 0) {
-						this.formData.businessLicensePic = this.businessLicensePicfileList[0].url
-					} else {
-						this.formData.businessLicensePic = ''
-					}
-					if (this.factoryPicfileList && this.factoryPicfileList.length > 0) {
-						this.formData.factoryPic = this.factoryPicfileList[0].url
-					} else {
-						this.formData.factoryPic = ''
-					}
+        if (this.businessLicensePicfileList && this.businessLicensePicfileList.length > 0) {
+          this.formData.businessLicensePic = this.businessLicensePicfileList[0].url
+        } else {
+          this.formData.businessLicensePic = ''
+        }
+        if (this.factoryPicfileList && this.factoryPicfileList.length > 0) {
+          this.formData.factoryPic = this.factoryPicfileList[0].url
+        } else {
+          this.formData.factoryPic = ''
+        }
 
-					if (this.formData.hasOwnProperty('addrPoint')) {
-						this.formData.orgLon = this.formData.addrPoint.lng
-						this.formData.orgLat = this.formData.addrPoint.lat
-					}
+        if (this.formData.hasOwnProperty('addrPoint')) {
+          this.formData.orgLon = this.formData.addrPoint.lng
+          this.formData.orgLat = this.formData.addrPoint.lat
+        }
 
-					this.dialogLoading = true
-					this.loadingText = '保存中'
-					if (this.id == undefined || this.id == '') {
-						addFactory(this.formData).then(res => {
-							this.$message('添加成功')
-							this.dialogLoading = false
-							this.$emit('closeDialog')
-							this.$root.$emit('refreshList');
-						}).catch(e => {
-							this.dialogLoading = false
-							this.$message.error(e.data.msg)
-						})
-					} else {
-						updateFactory(this.formData).then(res => {
-							this.$message('保存成功')
-							this.dialogLoading = false
-							this.$emit('closeDialog')
-							this.$root.$emit('refreshList');
-						}).catch(e => {
-							this.dialogLoading = false
-							this.$message.error(e.data.msg)
-						})
-					}
-				})
-			},
-			closeDialog() {
-				var ctx = this
-				this.$confirm('是否关闭表单,关闭后数据将丢失?').then(function() {
-					ctx.$emit('closeDialog')
-				}).then(() => {}).catch(() => {});
-			},
-			onOpen() {},
-			onClose() {
-				this.$refs['elForm'].resetFields()
-			},
-			close() {
-				this.$emit('update:visible', false)
-			},
-			handleConfirm() {
-				this.$refs['elForm'].validate(valid => {
-					if (!valid) return
-					this.close()
-				})
-			},
-			businessLicensePicBeforeUpload(file) {
-				let isRightSize = file.size / 1024 / 1024 < 2
-				if (!isRightSize) {
-					this.$message.error('文件大小超过 2MB')
-				}
-				return isRightSize
-			},
-			factoryPicBeforeUpload(file) {
-				let isRightSize = file.size / 1024 / 1024 < 2
-				if (!isRightSize) {
-					this.$message.error('文件大小超过 2MB')
-				}
-				return isRightSize
-			},
-			businessUploadSuccess(response, file, fileList) {
-				this.businessLicensePicfileList = fileList
-				if (this.businessLicensePicfileList.length > 1) {
-					this.businessLicensePicfileList.splice(0, 1)
-				}
-				this.businessLicensePicfileList[0].url = this.businessLicensePicfileList[0].response.data.src
-				console.log(this.businessLicensePicfileList)
-			},
-			businessOnRemove(file, fileList) {
-				this.businessLicensePicfileList = fileList
-			},
-			factoryUploadSuccess(response, file, fileList) {
-				this.factoryPicfileList = fileList
-				if (this.factoryPicfileList.length > 1) {
-					this.factoryPicfileList.splice(0, 1)
-				}
-				this.factoryPicfileList[0].url = this.factoryPicfileList[0].response.data.src
-				console.log(this.factoryPicfileList)
-			},
-			factoryOnRemove(file, fileList) {
-				this.factoryPicfileList = fileList
-			},
-			// 初始化百度地图
-			initBaiduMap() {
-				var that = this;
-				this.map = new BMap.Map("baidu-map-container", {
-					enableMapClick: false
-				}) //新建地图实例,enableMapClick:false :禁用地图默认点击弹框
-				var point = new BMap.Point(113.30765, 23.12005);
-				this.map.centerAndZoom(point, 19)
-				this.mk = new BMap.Marker(point, {
-					enableDragging: true
-				}) //创建一个图像标注实例,enableDragging:是否启用拖拽,默认为false
-				this.map.addOverlay(this.mk) //将覆盖物添加到地图中
-				this.mk.addEventListener('dragend', function(e) {
-					that.getAddrByPoint(e.point) //拖拽结束后调用逆地址解析函数,e.point为拖拽后的地理坐标
-				})
-				var navigationControl = new BMap.NavigationControl({ //创建一个特定样式的地图平移缩放控件
-					anchor: BMAP_ANCHOR_TOP_RIGHT, //靠右上角位置
-					type: BMAP_NAVIGATION_CONTROL_SMALL //SMALL控件类型
-				})
-				this.map.addControl(navigationControl) //将控件添加到地图
-				var geolocationControl = new BMap.GeolocationControl({
-					anchor: BMAP_ANCHOR_BOTTOM_LEFT
-				}) //创建一个地图定位控件
-				geolocationControl.addEventListener("locationSuccess", function(e) { //绑定定位成功后事件
-					that.getAddrByPoint(e.point) //定位成功后调用逆地址解析函数
-				});
-				geolocationControl.addEventListener("locationError", function(e) { //绑定定位失败后事件
-					console.log(e.message);
-				});
-				this.map.addControl(geolocationControl) //将控件添加到地图
-				this.map.addEventListener('click', function(e) { //给地图绑定点击事件
-					that.getAddrByPoint(e.point) //点击后调用逆地址解析函数
-				})
-				this.geolocation()
-			},
-			/**
-			 * 浏览器定位函数
-			 */
-			geolocation() {
-				var that = this;
-				var geolocation = new BMap.Geolocation();
-				geolocation.getCurrentPosition(function(res) {
-					if (this.getStatus() == BMAP_STATUS_SUCCESS) {
-						that.getAddrByPoint(res.point) //当成功时,调用逆地址解析函数
-					} else {
-						console.log('failed' + this.getStatus()); //失败时,弹出失败状态码
-					}
-				}, {
-					enableHighAccuracy: true
-				}) //enableHighAccuracy:是否要求浏览器获取最佳效果,默认为false
-			},
-			/** 逆向解析地址 point */
-			getAddrByPoint(point) {
-				var that = this;
-				var geco = new BMap.Geocoder();
-				geco.getLocation(point, function(res) {
-					console.log(res) //内容见下图
-					that.mk.setPosition(point) //重新设置标注的地理坐标
-					that.map.panTo(point) //将地图的中心点更改为给定的点
-					that.addressInfo.address = res.address; //记录该点的详细地址信息
-					that.addressInfo.addrPoint = point; //记录当前坐标点
-				})
-			},
-			querySearchAsync(str, cb) {
-				var options = {
-					onSearchComplete: function(res) { //检索完成后的回调函数
-						var s = [];
-						if (local.getStatus() == BMAP_STATUS_SUCCESS) {
-							for (var i = 0; i < res.getCurrentNumPois(); i++) {
-								s.push(res.getPoi(i));
-							}
-							cb(s) //获取到数据时,通过回调函数cb返回到<el-autocomplete>组件中进行显示
-						} else {
-							cb(s)
-						}
-					}
-				}
-				var local = new BMap.LocalSearch(this.map, options) //创建LocalSearch构造函数
-				local.search(str) //调用search方法,根据检索词str发起检索
-			},
-			handleSelect(item) {
-				this.formData.address = item.address + item.title; //记录详细地址,含建筑物名
-				this.formData.addrPoint = item.point; //记录当前选中地址坐标
-				this.map.clearOverlays() //清除地图上所有覆盖物
-				this.mk = new BMap.Marker(item.point) //根据所选坐标重新创建Marker
-				this.map.addOverlay(this.mk) //将覆盖物重新添加到地图中
-				this.map.panTo(item.point) //将地图的中心点更改为选定坐标点
-			},
-			/**
-			 * 确认选择
-			 */
-			confirmSelect() {
-				this.$emit("confirmMapAddress", this.addressInfo);
-				this.openMap = false;
-			},
+        this.dialogLoading = true
+        this.loadingText = '保存中'
+        if (this.id == undefined || this.id == '') {
+          addFactory(this.formData).then(res => {
+            this.$message('添加成功')
+            this.dialogLoading = false
+            this.$emit('closeDialog')
+            this.$root.$emit('refreshList');
+          }).catch(e => {
+            this.dialogLoading = false
+            this.$message.error(e.data.msg)
+          })
+        } else {
+          updateFactory(this.formData).then(res => {
+            this.$message('保存成功')
+            this.dialogLoading = false
+            this.$emit('closeDialog')
+            this.$root.$emit('refreshList');
+          }).catch(e => {
+            this.dialogLoading = false
+            this.$message.error(e.data.msg)
+          })
+        }
+      })
+    },
+    closeDialog() {
+      var ctx = this
+      this.$confirm('是否关闭表单,关闭后数据将丢失?').then(function () {
+        ctx.$emit('closeDialog')
+      }).then(() => { }).catch(() => { });
+    },
+    onOpen() { },
+    onClose() {
+      this.$refs['elForm'].resetFields()
+    },
+    close() {
+      this.$emit('update:visible', false)
+    },
+    handleConfirm() {
+      this.$refs['elForm'].validate(valid => {
+        if (!valid) return
+        this.close()
+      })
+    },
+    businessLicensePicBeforeUpload(file) {
+      let isRightSize = file.size / 1024 / 1024 < 2
+      if (!isRightSize) {
+        this.$message.error('文件大小超过 2MB')
+      }
+      return isRightSize
+    },
+    factoryPicBeforeUpload(file) {
+      let isRightSize = file.size / 1024 / 1024 < 2
+      if (!isRightSize) {
+        this.$message.error('文件大小超过 2MB')
+      }
+      return isRightSize
+    },
+    businessUploadSuccess(response, file, fileList) {
+      this.businessLicensePicfileList = fileList
+      if (this.businessLicensePicfileList.length > 1) {
+        this.businessLicensePicfileList.splice(0, 1)
+      }
+      this.businessLicensePicfileList[0].url = this.businessLicensePicfileList[0].response.data.src
+      console.log(this.businessLicensePicfileList)
+    },
+    businessOnRemove(file, fileList) {
+      this.businessLicensePicfileList = fileList
+    },
+    factoryUploadSuccess(response, file, fileList) {
+      this.factoryPicfileList = fileList
+      if (this.factoryPicfileList.length > 1) {
+        this.factoryPicfileList.splice(0, 1)
+      }
+      this.factoryPicfileList[0].url = this.factoryPicfileList[0].response.data.src
+      console.log(this.factoryPicfileList)
+    },
+    factoryOnRemove(file, fileList) {
+      this.factoryPicfileList = fileList
+    },
+    // 初始化百度地图
+    initBaiduMap() {
+      var that = this;
+      this.map = new BMap.Map("baidu-map-container", {
+        enableMapClick: false
+      }) //新建地图实例,enableMapClick:false :禁用地图默认点击弹框
+      var point = new BMap.Point(113.30765, 23.12005);
+      this.map.centerAndZoom(point, 19)
+      this.mk = new BMap.Marker(point, {
+        enableDragging: true
+      }) //创建一个图像标注实例,enableDragging:是否启用拖拽,默认为false
+      this.map.addOverlay(this.mk) //将覆盖物添加到地图中
+      this.mk.addEventListener('dragend', function (e) {
+        that.getAddrByPoint(e.point) //拖拽结束后调用逆地址解析函数,e.point为拖拽后的地理坐标
+      })
+      var navigationControl = new BMap.NavigationControl({ //创建一个特定样式的地图平移缩放控件
+        anchor: BMAP_ANCHOR_TOP_RIGHT, //靠右上角位置
+        type: BMAP_NAVIGATION_CONTROL_SMALL //SMALL控件类型
+      })
+      this.map.addControl(navigationControl) //将控件添加到地图
+      var geolocationControl = new BMap.GeolocationControl({
+        anchor: BMAP_ANCHOR_BOTTOM_LEFT
+      }) //创建一个地图定位控件
+      geolocationControl.addEventListener("locationSuccess", function (e) { //绑定定位成功后事件
+        that.getAddrByPoint(e.point) //定位成功后调用逆地址解析函数
+      });
+      geolocationControl.addEventListener("locationError", function (e) { //绑定定位失败后事件
+        console.log(e.message);
+      });
+      this.map.addControl(geolocationControl) //将控件添加到地图
+      this.map.addEventListener('click', function (e) { //给地图绑定点击事件
+        that.getAddrByPoint(e.point) //点击后调用逆地址解析函数
+      })
+      this.geolocation()
+    },
+    /**
+     * 浏览器定位函数
+     */
+    geolocation() {
+      var that = this;
+      var geolocation = new BMap.Geolocation();
+      geolocation.getCurrentPosition(function (res) {
+        if (this.getStatus() == BMAP_STATUS_SUCCESS) {
+          that.getAddrByPoint(res.point) //当成功时,调用逆地址解析函数
+        } else {
+          console.log('failed' + this.getStatus()); //失败时,弹出失败状态码
+        }
+      }, {
+        enableHighAccuracy: true
+      }) //enableHighAccuracy:是否要求浏览器获取最佳效果,默认为false
+    },
+    /** 逆向解析地址 point */
+    getAddrByPoint(point) {
+      var that = this;
+      var geco = new BMap.Geocoder();
+      geco.getLocation(point, function (res) {
+        console.log(res) //内容见下图
+        that.mk.setPosition(point) //重新设置标注的地理坐标
+        that.map.panTo(point) //将地图的中心点更改为给定的点
+        that.addressInfo.address = res.address; //记录该点的详细地址信息
+        that.addressInfo.addrPoint = point; //记录当前坐标点
+      })
+    },
+    querySearchAsync(str, cb) {
+      var options = {
+        onSearchComplete: function (res) { //检索完成后的回调函数
+          var s = [];
+          if (local.getStatus() == BMAP_STATUS_SUCCESS) {
+            for (var i = 0; i < res.getCurrentNumPois(); i++) {
+              s.push(res.getPoi(i));
+            }
+            cb(s) //获取到数据时,通过回调函数cb返回到<el-autocomplete>组件中进行显示
+          } else {
+            cb(s)
+          }
+        }
+      }
+      var local = new BMap.LocalSearch(this.map, options) //创建LocalSearch构造函数
+      local.search(str) //调用search方法,根据检索词str发起检索
+    },
+    handleSelect(item) {
+      this.formData.address = item.address + item.title; //记录详细地址,含建筑物名
+      this.formData.addrPoint = item.point; //记录当前选中地址坐标
+      this.map.clearOverlays() //清除地图上所有覆盖物
+      this.mk = new BMap.Marker(item.point) //根据所选坐标重新创建Marker
+      this.map.addOverlay(this.mk) //将覆盖物重新添加到地图中
+      this.map.panTo(item.point) //将地图的中心点更改为选定坐标点
+    },
+    /**
+     * 确认选择
+     */
+    confirmSelect() {
+      this.$emit("confirmMapAddress", this.addressInfo);
+      this.openMap = false;
+    },
 
-			/**
-			 * 取消选择
-			 */
-			cancel() {
-				this.$emit('cancelMap')
-			},
-			/**
-			 * 动态加载百度地图api函数
-			 * @param {String} ak  百度地图AK,必传
-			 */
-			loadBMap(ak) {
-				return new Promise(function(resolve, reject) {
-					if (typeof window.BMap !== 'undefined') {
-						resolve(window.BMap)
-						return true
-					}
-					window.onBMapCallback = function() {
-						resolve(window.BMap)
-					}
-					let script = document.createElement('script')
-					script.type = 'text/javascript'
-					script.src =
-						'https://api.map.baidu.com/api?v=3.0&ak=' + ak + '&callback=onBMapCallback'
-					script.onerror = reject
-					document.head.appendChild(script)
-				})
-			}
-		}
-	}
+    /**
+     * 取消选择
+     */
+    cancel() {
+      this.$emit('cancelMap')
+    },
+    /**
+     * 动态加载百度地图api函数
+     * @param {String} ak  百度地图AK,必传
+     */
+    loadBMap(ak) {
+      return new Promise(function (resolve, reject) {
+        if (typeof window.BMap !== 'undefined') {
+          resolve(window.BMap)
+          return true
+        }
+        window.onBMapCallback = function () {
+          resolve(window.BMap)
+        }
+        let script = document.createElement('script')
+        script.type = 'text/javascript'
+        script.src =
+          'https://api.map.baidu.com/api?v=3.0&ak=' + ak + '&callback=onBMapCallback'
+        script.onerror = reject
+        document.head.appendChild(script)
+      })
+    }
+  }
+}
 </script>
 
 <style>
-	.el-upload__tip {
-		line-height: 1.2;
-	}
+.el-upload__tip {
+    line-height: 1.2;
+}
 </style>

+ 1 - 1
src/views/system/menu/index.vue

@@ -54,7 +54,7 @@
     </el-row>
 
     <el-table
-      v-if="refreshTable"
+      v-if="refreshTable" fit highlight-current-row border stripe
       v-loading="loading"
       :data="menuList"
       row-key="menuId"

+ 14 - 0
src/views/system/user/index.vue

@@ -205,6 +205,20 @@
                             <el-date-picker clearable v-model="form.leaveDate" type="date" value-format="yyyy-MM-dd" placeholder="请选择离职日期"> </el-date-picker>
                         </el-form-item>
                     </el-col>
+                    <el-col :span="8" v-if="sourceType == '01'">
+                        <el-form-item label="所属工厂">
+                            <el-select v-model="form.factoryId"  placeholder="请选择工厂" clearable filterable >
+                                <el-option v-for="item in factoryList" :key="item.id" :label="item.factoryName" :value="item.id"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="8" v-if="sourceType == '02'">
+                        <el-form-item label="所属门店">
+                            <el-select v-model="form.storeId"  placeholder="请选择" clearable filterable> 
+                                <el-option v-for="item in storeList" :key="item.id" :label="item.name" :value="item.id"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
                     <el-col :span="8">
                         <el-form-item label="状态">
                             <el-radio-group v-model="form.status">