|
@@ -1,17 +1,15 @@
|
|
|
<template>
|
|
|
+ <!-- 注册调研员组件 -->
|
|
|
<div class="mainBox">
|
|
|
<div class="layerBox">
|
|
|
- <el-form ref="form" :model="form" :rules="loginRules" class="login-form" autocomplete="on" label-position="left" label-width="120px">
|
|
|
+ <el-form ref="form" :model="form" :rules="loginRules" class="login-form" autocomplete="on" label-position="left"
|
|
|
+ label-width="120px">
|
|
|
<div class="formDiv">
|
|
|
<!--选择角色 start------------------------------------------>
|
|
|
<el-form-item label="所属角色:" :label-width="formLabelWidth" prop="role_id" class="custom-align-right">
|
|
|
<div class="formLabelFloatBox">
|
|
|
<el-select v-model="form.role_id" placeholder="请选择..">
|
|
|
- <el-option
|
|
|
- v-for="item in role_idArr"
|
|
|
- :key="item.value"
|
|
|
- :label="item.label"
|
|
|
- :value="item.value">
|
|
|
+ <el-option v-for="item in role_idArr" :key="item.value" :label="item.label" :value="item.value">
|
|
|
</el-option>
|
|
|
</el-select>
|
|
|
</div>
|
|
@@ -20,22 +18,13 @@
|
|
|
<el-form-item label="登录账号:" :label-width="formLabelWidth" prop="user_name" class="custom-align-right">
|
|
|
<el-input v-model="form.user_name" autocomplete="off" placeholder="请输入登录账号.."></el-input>
|
|
|
</el-form-item>
|
|
|
- <div v-if="editId==''">
|
|
|
+ <div v-if="editId == ''">
|
|
|
<!--新密码 start------------------------------------------>
|
|
|
<div class="PasswordBox">
|
|
|
- <el-form-item prop="password" label="登录密码:" class="custom-align-right">
|
|
|
+ <el-form-item prop="password" label="登录密码:" class="custom-align-right">
|
|
|
<div class="PasswordBody">
|
|
|
- <el-input
|
|
|
- :key="passwordType1"
|
|
|
- ref="password1"
|
|
|
- v-model="form.password"
|
|
|
- :type="passwordType1"
|
|
|
- placeholder="请输入密码"
|
|
|
- name="password"
|
|
|
- tabindex="2"
|
|
|
- autocomplete="off"
|
|
|
- @blur="capsTooltip2 = false"
|
|
|
- />
|
|
|
+ <el-input :key="passwordType1" ref="password1" v-model="form.password" :type="passwordType1"
|
|
|
+ placeholder="请输入密码" name="password" tabindex="2" autocomplete="off" @blur="capsTooltip2 = false" />
|
|
|
<span class="show-pwd" @click="showPwd(1)">
|
|
|
<svg-icon :icon-class="passwordType1 === 'password' ? 'eye' : 'eye-open'" />
|
|
|
</span>
|
|
@@ -45,19 +34,10 @@
|
|
|
<!--新密码 end------------------------------------------>
|
|
|
<!--新密码 start------------------------------------------>
|
|
|
<div class="PasswordBox">
|
|
|
- <el-form-item prop="confirm_password" label="确认密码:" class="custom-align-right">
|
|
|
+ <el-form-item prop="confirm_password" label="确认密码:" class="custom-align-right">
|
|
|
<div class="PasswordBody">
|
|
|
- <el-input
|
|
|
- :key="passwordType2"
|
|
|
- ref="password2"
|
|
|
- v-model="form.confirm_password"
|
|
|
- :type="passwordType2"
|
|
|
- placeholder="请输入密码"
|
|
|
- name="password"
|
|
|
- tabindex="2"
|
|
|
- autocomplete="off"
|
|
|
- @blur="capsTooltip2 = false"
|
|
|
- />
|
|
|
+ <el-input :key="passwordType2" ref="password2" v-model="form.confirm_password" :type="passwordType2"
|
|
|
+ placeholder="请输入密码" name="password" tabindex="2" autocomplete="off" @blur="capsTooltip2 = false" />
|
|
|
<span class="show-pwd" @click="showPwd(2)">
|
|
|
<svg-icon :icon-class="passwordType2 === 'password' ? 'eye' : 'eye-open'" />
|
|
|
</span>
|
|
@@ -72,17 +52,14 @@
|
|
|
<el-form-item label="真实姓名:" :label-width="formLabelWidth" prop="real_name" class="custom-align-right">
|
|
|
<el-input v-model="form.real_name" autocomplete="off" placeholder="请输入真实姓名.."></el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="照片:" :label-width="formLabelWidth" prop="avatar" :class="['custom-form-item']" class="custom-align-right">
|
|
|
+ <el-form-item label="照片:" :label-width="formLabelWidth" prop="avatar" :class="['custom-form-item']"
|
|
|
+ class="custom-align-right">
|
|
|
<div class="uploaderBox">
|
|
|
<!--图片上传组件 start ------------------------------------------------------------>
|
|
|
<div class="avatar-upload-container" @mouseenter="hovering = true" @mouseleave="hovering = false">
|
|
|
<!-- 上传组件 -->
|
|
|
- <el-upload
|
|
|
- class="avatar-uploader"
|
|
|
- action="#"
|
|
|
- :show-file-list="false"
|
|
|
- :before-upload="beforeAvatarUpload"
|
|
|
- >
|
|
|
+ <el-upload class="avatar-uploader" action="#" :show-file-list="false"
|
|
|
+ :before-upload="beforeAvatarUpload">
|
|
|
<!-- 预览图片 -->
|
|
|
<img v-if="photoUrl" :src="photoUrl" class="avatar">
|
|
|
<!-- 上传图标 -->
|
|
@@ -106,45 +83,37 @@
|
|
|
<el-input v-model="form.id_card" autocomplete="off" placeholder="请输入身份证号.."></el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="出生年月:" :label-width="formLabelWidth" prop="birthday" class="custom-align-right">
|
|
|
- <el-date-picker
|
|
|
- v-model="form.birthday"
|
|
|
- type="date"
|
|
|
- placeholder="选择日期"
|
|
|
- disabled
|
|
|
- >
|
|
|
+ <el-date-picker v-model="form.birthday" type="date" placeholder="选择日期" disabled>
|
|
|
</el-date-picker>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="性别:" :label-width="formLabelWidth" prop="gender" class="custom-align-right">
|
|
|
<el-radio v-model="form.gender" label="1">男</el-radio>
|
|
|
- <el-radio v-model="form.gender" label="2">女</el-radio>
|
|
|
+ <el-radio v-model="form.gender" label="2">女</el-radio>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="手机号:" :label-width="formLabelWidth" prop="mobile" class="custom-align-right">
|
|
|
<el-input v-model="form.mobile" autocomplete="off" placeholder="请输入手机号.."></el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="工作区域:" :label-width="formLabelWidth" prop="city_arr_id" class="custom-align-right">
|
|
|
<!-- 级联选择器 -->
|
|
|
- <CityCascader v-model="form.city_arr_id" @update-city-id="update_city_arr_id" v-if="isNational==0"></CityCascader>
|
|
|
+ <CityCascader v-model="form.city_arr_id" @update-city-id="update_city_arr_id" v-if="isNational == 0">
|
|
|
+ </CityCascader>
|
|
|
<el-cascader :options="options" :show-all-levels="false" disabled v-else></el-cascader>
|
|
|
<el-checkbox v-model="isNational" :true-label="1" :false-label="0" class="longTimeCheckbox">全国</el-checkbox>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="站点标识:" :label-width="formLabelWidth" prop="sszq" class="custom-align-right">
|
|
|
+ <el-form-item label="站点标识:" :label-width="formLabelWidth" prop="sszq" class="custom-align-right">
|
|
|
<!-- 级联选择器 xx-->
|
|
|
<el-cascader v-model="form.sszq" :options="options_arr" filterable clearable></el-cascader>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="有效期:" :label-width="formLabelWidth" prop="timeList" class="custom-align-right">
|
|
|
- <el-date-picker
|
|
|
- v-model="timeList"
|
|
|
- type="daterange"
|
|
|
- :disabled="form.long_time === 1"
|
|
|
- range-separator="至"
|
|
|
- start-placeholder="开始日期"
|
|
|
- end-placeholder="结束日期"
|
|
|
- :picker-options="pickerOptions">
|
|
|
+ <el-date-picker v-model="timeList" type="daterange" :disabled="form.long_time === 1" range-separator="至"
|
|
|
+ start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions">
|
|
|
</el-date-picker>
|
|
|
- <el-checkbox v-model="form.long_time" :true-label="1" :false-label="0" class="longTimeCheckbox">无限期</el-checkbox>
|
|
|
+ <el-checkbox v-model="form.long_time" :true-label="1" :false-label="0"
|
|
|
+ class="longTimeCheckbox">无限期</el-checkbox>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="籍贯:" :label-width="formLabelWidth" prop="" class="custom-align-right">
|
|
|
- <CityCascader v-model="form.native_place_arr_id" @update-city-id="update_native_place_arr_id"></CityCascader>
|
|
|
+ <CityCascader v-model="form.native_place_arr_id" @update-city-id="update_native_place_arr_id">
|
|
|
+ </CityCascader>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="QQ:" :label-width="formLabelWidth" prop="" class="custom-align-right">
|
|
|
<el-input v-model="form.qq" autocomplete="off" placeholder="请输入QQ号.."></el-input>
|
|
@@ -162,18 +131,10 @@
|
|
|
<el-input v-model="form.address" autocomplete="off" placeholder="请输入门牌号.."></el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="相关资料:" :label-width="formLabelWidth" prop="" class="custom-align-right">
|
|
|
- <el-upload
|
|
|
- class="upload-demo"
|
|
|
- :action="uploadFileUrl"
|
|
|
- :headers="headers"
|
|
|
- :on-preview="handlePreview"
|
|
|
- :on-remove="handleRemove"
|
|
|
- :before-remove="beforeRemove"
|
|
|
- :on-success="handleUploadSuccess"
|
|
|
- multiple
|
|
|
- :limit="30"
|
|
|
- :on-exceed="handleExceed"
|
|
|
- :file-list="otherList">
|
|
|
+ <el-upload class="upload-demo" :action="uploadFileUrl" :headers="headers" :on-preview="handlePreview"
|
|
|
+ :on-remove="handleRemove" :before-remove="beforeRemove" :on-success="handleUploadSuccess" multiple
|
|
|
+ :limit="30" :on-exceed="handleExceed" :file-list="otherList" list-type="picture"
|
|
|
+ :before-upload="beforeAvatarUpload">
|
|
|
<el-button size="small" type="primary">点击上传</el-button>
|
|
|
<div slot="tip" class="el-upload__tip">每张图片最大1MB,最多上传30张图片。</div>
|
|
|
</el-upload>
|
|
@@ -193,12 +154,12 @@
|
|
|
</el-form-item> -->
|
|
|
</div>
|
|
|
</el-form>
|
|
|
- </div>
|
|
|
+ </div>
|
|
|
<div class="bottomBtnBox">
|
|
|
<el-button type="info" @click="goList">返回</el-button>
|
|
|
- <el-button type="primary" @click="addData" v-if="editId==''">提交</el-button>
|
|
|
- <el-button type="primary" @click="editData" v-if="editId!=''">修改</el-button>
|
|
|
- <el-button type="warning" @click="resetPassword" v-if="editId!=''">重置密码</el-button>
|
|
|
+ <el-button type="primary" @click="addData" v-if="editId == ''">提交</el-button>
|
|
|
+ <el-button type="primary" @click="editData" v-if="editId != ''">修改</el-button>
|
|
|
+ <el-button type="warning" @click="resetPassword" v-if="editId != ''">重置密码</el-button>
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
@@ -239,38 +200,38 @@ export default {
|
|
|
callback();
|
|
|
}
|
|
|
}
|
|
|
- const validateEmpty = (rule,value,callback) => {
|
|
|
+ const validateEmpty = (rule, value, callback) => {
|
|
|
if (!value || value.trim() === "") {
|
|
|
callback(new Error('该项不能为空!'));
|
|
|
} else {
|
|
|
callback();
|
|
|
}
|
|
|
}
|
|
|
- const validateArray = (rule,value,callback) => {
|
|
|
+ const validateArray = (rule, value, callback) => {
|
|
|
if (value.length == 0) {
|
|
|
callback(new Error('该项不能为空!'))
|
|
|
} else {
|
|
|
callback()
|
|
|
}
|
|
|
}
|
|
|
- const validateTime = (rule,value,callback) => {
|
|
|
- if(value==="NaN-NaN-NaN NaN:NaN:NaN"){
|
|
|
+ const validateTime = (rule, value, callback) => {
|
|
|
+ if (value === "NaN-NaN-NaN NaN:NaN:NaN") {
|
|
|
callback(new Error('该项不能为空!'))
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
callback()
|
|
|
}
|
|
|
}
|
|
|
- const validateTimeTo = (rule,value,callback) => {
|
|
|
+ const validateTimeTo = (rule, value, callback) => {
|
|
|
// console.log(value)
|
|
|
// console.log(self.timeList)
|
|
|
// console.log(self.form.long_time)
|
|
|
- if(self.timeList.length == 0&&self.form.long_time==0){
|
|
|
+ if (self.timeList.length == 0 && self.form.long_time == 0) {
|
|
|
callback(new Error('该项不能为空!'))
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
callback()
|
|
|
}
|
|
|
}
|
|
|
- const validateIdcard = (rule,value,callback) => {
|
|
|
+ const validateIdcard = (rule, value, callback) => {
|
|
|
const idCardRegex = /^(?:\d{15}|\d{18}|\d{17}[\dXx])$/; // 正则表达式验证身份证号
|
|
|
if (!value || value.trim() === "") {
|
|
|
callback(new Error('该项不能为空!'));
|
|
@@ -284,73 +245,73 @@ export default {
|
|
|
}
|
|
|
return {
|
|
|
|
|
|
- options_arr:[],
|
|
|
+ options_arr: [],
|
|
|
|
|
|
props_1: { multiple: true },//下拉多选
|
|
|
|
|
|
|
|
|
- formLabelWidth:"120px",
|
|
|
- editId:"",
|
|
|
- uploadFileUrl:URL.baseUrl+"/public/uploadFile",//获得上传地址
|
|
|
+ formLabelWidth: "120px",
|
|
|
+ editId: "",
|
|
|
+ uploadFileUrl: URL.baseUrl + "/public/uploadFile",//获得上传地址
|
|
|
headers: {},
|
|
|
|
|
|
|
|
|
- website_tag_params:{//xx
|
|
|
- keyword:"",//网站名称查询
|
|
|
- website_column_id:[],//使用网系id查询
|
|
|
- city_id:[],//使用城市id查询
|
|
|
-
|
|
|
- page:1,//当前是第几页
|
|
|
- pageSize:666666,//一共多少条
|
|
|
- name:"",
|
|
|
- },
|
|
|
-
|
|
|
-
|
|
|
- form:{
|
|
|
-
|
|
|
- // websiteTag_arr_id:[], //站点标识下拉id onlyxx
|
|
|
-
|
|
|
- websiteTag_arr_id:[], //站点标识下拉id only
|
|
|
-
|
|
|
- websiteTag_reg:"",
|
|
|
- sszq:"", //站点标识下拉id
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- type_id:4,//调研员
|
|
|
- role_id:"",//角色id
|
|
|
- user_name:"",//登录账号
|
|
|
- password:"",//密码
|
|
|
- confirm_password:"",//确认密码
|
|
|
- number:"",//调研员编号
|
|
|
- real_name:"",//真实姓名
|
|
|
- avatar:"",//照片
|
|
|
- id_card:"",//身份证号
|
|
|
- birthday:"",//出生年月
|
|
|
- gender:"1",//性别
|
|
|
- mobile:"",//手机号
|
|
|
- native_place_arr_id:[],//籍贯
|
|
|
- city_arr_id:"",//工作区域
|
|
|
- address_arr_id:[],//详细地址
|
|
|
- address:"",//详细地址门牌号
|
|
|
- from_time:"",//有效期开始时间
|
|
|
- to_time:"",//有效期结束时间
|
|
|
- long_time:0,//是否为长期 //长期1:长期 0:非长期
|
|
|
- qq:"",//QQ
|
|
|
- email:"",//电子邮箱
|
|
|
- other:[],//相关资料
|
|
|
- remark:"",//提示词
|
|
|
- zip_code:"",//邮编
|
|
|
+ website_tag_params: {//xx
|
|
|
+ keyword: "",//网站名称查询
|
|
|
+ website_column_id: [],//使用网系id查询
|
|
|
+ city_id: [],//使用城市id查询
|
|
|
+
|
|
|
+ page: 1,//当前是第几页
|
|
|
+ pageSize: 666666,//一共多少条
|
|
|
+ name: "",
|
|
|
+ },
|
|
|
+
|
|
|
+
|
|
|
+ form: {
|
|
|
+
|
|
|
+ // websiteTag_arr_id:[], //站点标识下拉id onlyxx
|
|
|
+
|
|
|
+ websiteTag_arr_id: [], //站点标识下拉id only
|
|
|
+
|
|
|
+ websiteTag_reg: "",
|
|
|
+ sszq: "", //站点标识下拉id
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ type_id: 4,//调研员
|
|
|
+ role_id: "",//角色id
|
|
|
+ user_name: "",//登录账号
|
|
|
+ password: "",//密码
|
|
|
+ confirm_password: "",//确认密码
|
|
|
+ number: "",//调研员编号
|
|
|
+ real_name: "",//真实姓名
|
|
|
+ avatar: "",//照片
|
|
|
+ id_card: "",//身份证号
|
|
|
+ birthday: "",//出生年月
|
|
|
+ gender: "1",//性别
|
|
|
+ mobile: "",//手机号
|
|
|
+ native_place_arr_id: [],//籍贯
|
|
|
+ city_arr_id: "",//工作区域
|
|
|
+ address_arr_id: [],//详细地址
|
|
|
+ address: "",//详细地址门牌号
|
|
|
+ from_time: "",//有效期开始时间
|
|
|
+ to_time: "",//有效期结束时间
|
|
|
+ long_time: 0,//是否为长期 //长期1:长期 0:非长期
|
|
|
+ qq: "",//QQ
|
|
|
+ email: "",//电子邮箱
|
|
|
+ other: [],//相关资料
|
|
|
+ remark: "",//提示词
|
|
|
+ zip_code: "",//邮编
|
|
|
//sszq: [],//所属网站
|
|
|
},
|
|
|
- timeList:[],//时间段
|
|
|
- otherList:[],//相关资料列表
|
|
|
- role_idArr:[],//角色id池
|
|
|
- isNational:0,//是否为全国
|
|
|
+ timeList: [],//时间段
|
|
|
+ otherList: [],//相关资料列表
|
|
|
+ role_idArr: [],//角色id池
|
|
|
+ isNational: 0,//是否为全国
|
|
|
//网站列表
|
|
|
webSiteList: [],
|
|
|
//上传照片
|
|
|
- photoUrl:'',
|
|
|
+ photoUrl: '',
|
|
|
hovering: false, // 鼠标悬浮状态 悬浮时显示删除
|
|
|
//密码验证
|
|
|
capsTooltip1: false,
|
|
@@ -358,11 +319,11 @@ export default {
|
|
|
passwordType1: 'password',
|
|
|
passwordType2: 'password',
|
|
|
//配置from表单验证规则
|
|
|
- loginRules: {
|
|
|
+ loginRules: {
|
|
|
|
|
|
|
|
|
- // 站点标识xx
|
|
|
- websiteTag_arr_id: [{ type:'array',required: true, trigger: 'blur', validator: validateArray }],
|
|
|
+ // 站点标识xx
|
|
|
+ websiteTag_arr_id: [{ type: 'array', required: true, trigger: 'blur', validator: validateArray }],
|
|
|
|
|
|
|
|
|
|
|
@@ -393,7 +354,7 @@ export default {
|
|
|
//12.出生年月
|
|
|
birthday: [{ required: true, trigger: 'blur', validator: validateEmpty }],
|
|
|
//13.有效期
|
|
|
- timeList:[{ required: true, trigger: 'blur', validator: validateTimeTo }],
|
|
|
+ timeList: [{ required: true, trigger: 'blur', validator: validateTimeTo }],
|
|
|
//14.网站选择
|
|
|
sszq: [{ required: true, trigger: 'blur', validator: validateArray }]
|
|
|
},
|
|
@@ -424,17 +385,17 @@ export default {
|
|
|
});
|
|
|
},
|
|
|
//1.2获得角色列表池
|
|
|
- getRoleList(){
|
|
|
+ getRoleList() {
|
|
|
let data = {
|
|
|
- page:1,
|
|
|
- pageSize:100
|
|
|
+ page: 1,
|
|
|
+ pageSize: 100
|
|
|
}
|
|
|
- this.$store.dispatch('userRole/roleList',data).then(res=>{
|
|
|
+ this.$store.dispatch('userRole/roleList', data).then(res => {
|
|
|
this.role_idArr = res.data.rows.map(item => ({
|
|
|
value: item.id,
|
|
|
- label: item.role_name
|
|
|
+ label: item.role_name
|
|
|
}));
|
|
|
- }).catch(error=>{
|
|
|
+ }).catch(error => {
|
|
|
this.$message({
|
|
|
type: 'warning',
|
|
|
message: '网络错误,请重试!'
|
|
@@ -442,25 +403,25 @@ export default {
|
|
|
})
|
|
|
},
|
|
|
//1.3更新工作区域
|
|
|
- update_city_arr_id(value){
|
|
|
+ update_city_arr_id(value) {
|
|
|
console.log("工作区域ID已更新:", value);
|
|
|
this.form.city_arr_id = value;
|
|
|
|
|
|
console.log(this.form.city_arr_id);
|
|
|
},
|
|
|
//1.4更新籍贯
|
|
|
- update_native_place_arr_id(value){
|
|
|
+ update_native_place_arr_id(value) {
|
|
|
console.log("籍贯ID已更新:", value);
|
|
|
this.form.native_place_arr_id = value;
|
|
|
},
|
|
|
//1.5更新详细地址
|
|
|
- update_address_arr_id(value){
|
|
|
+ update_address_arr_id(value) {
|
|
|
console.log("详细地址ID已更新:", value);
|
|
|
this.form.address_arr_id = value;
|
|
|
},
|
|
|
//1.5重置表单
|
|
|
- clearData(){
|
|
|
-
|
|
|
+ clearData() {
|
|
|
+
|
|
|
},
|
|
|
//表单收集 end ------------------------------------------------------------>
|
|
|
//2.提交表单 start ------------------------------------------------------------>
|
|
@@ -482,7 +443,7 @@ export default {
|
|
|
const formData = new FormData();
|
|
|
formData.append('file', file);
|
|
|
|
|
|
- this.$store.dispatch('pool/uploadFile',formData).then(res=> {
|
|
|
+ this.$store.dispatch('pool/uploadFile', formData).then(res => {
|
|
|
this.photoUrl = res.data.imgUrl;//显示缩略图
|
|
|
this.form.avatar = res.data.imgUrl;//提供表单地址
|
|
|
console.log(res.data.imgUrl)
|
|
@@ -511,7 +472,7 @@ export default {
|
|
|
this.$message.warning(`当前限制选择 30 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);
|
|
|
},
|
|
|
beforeRemove(file, fileList) {
|
|
|
- return this.$confirm(`确定移除 ${ file.name }?`);
|
|
|
+ return this.$confirm(`确定移除 ${file.name}?`);
|
|
|
},
|
|
|
//获取token
|
|
|
getTokenFromCookie() {
|
|
@@ -538,23 +499,38 @@ export default {
|
|
|
console.log('上传成功:', response);
|
|
|
console.log(this.form.other);
|
|
|
},
|
|
|
+ //只能上传图片
|
|
|
+ beforeAvatarUpload(file) {
|
|
|
+ const isJPG = file.type === 'image/jpeg';
|
|
|
+ const isPNG = file.type === 'image/png';
|
|
|
+ const isLt1M = file.size / 1024 / 1024 < 1;
|
|
|
+
|
|
|
+ if (!isJPG && !isPNG) {
|
|
|
+ this.$message.error('上传图片只能是 JPG 或 PNG 格式!');
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if (!isLt1M) {
|
|
|
+ this.$message.error('上传图片大小不能超过 1MB!');
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ },
|
|
|
//提交表单
|
|
|
- addData(){
|
|
|
+ addData() {
|
|
|
|
|
|
console.log(this.timeList)
|
|
|
//1.格式化时间戳
|
|
|
this.form.birthday = formatLocalDate(this.form.birthday);
|
|
|
- if(this.form.long_time==0){
|
|
|
+ if (this.form.long_time == 0) {
|
|
|
this.form.from_time = formatLocalDate(this.timeList[0]);
|
|
|
this.form.to_time = formatLocalDate(this.timeList[1]);
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
// this.form.from_time = "";
|
|
|
// this.form.to_time = "";
|
|
|
delete this.form.from_time;
|
|
|
delete this.form.to_time;
|
|
|
}
|
|
|
//判断用户工作区域是否为全国
|
|
|
- if(this.isNational==1){
|
|
|
+ if (this.isNational == 1) {
|
|
|
this.form.city_arr_id = [0];
|
|
|
}
|
|
|
console.log(this.form)
|
|
@@ -562,42 +538,42 @@ export default {
|
|
|
this.$refs.form.validate(valid => {
|
|
|
if (valid) {
|
|
|
//3.验证用户是否已经存在
|
|
|
- this.$store.dispatch('userMember/verifyUserInfo',{user_name:this.form.user_name}).then(res=>{
|
|
|
+ this.$store.dispatch('userMember/verifyUserInfo', { user_name: this.form.user_name }).then(res => {
|
|
|
|
|
|
- if(res.code==0){
|
|
|
+ if (res.code == 0) {
|
|
|
//如果code为0表示用户不存在,提交表单
|
|
|
|
|
|
-
|
|
|
- this.form.sszq=this.form.sszq[0]
|
|
|
- console.log("this.form.sszq===",this.form.sszq)
|
|
|
- console.log("this.form1===",this.form)
|
|
|
|
|
|
- this.$store.dispatch('userMember/createUser',this.form).then(res=>{
|
|
|
+ this.form.sszq = this.form.sszq[0]
|
|
|
+ console.log("this.form.sszq===", this.form.sszq)
|
|
|
+ console.log("this.form1===", this.form)
|
|
|
+
|
|
|
+ this.$store.dispatch('userMember/createUser', this.form).then(res => {
|
|
|
|
|
|
- console.log("this.form222===res",res)
|
|
|
+ console.log("this.form222===res", res)
|
|
|
|
|
|
- if(res.code==200){
|
|
|
+ if (res.code == 200) {
|
|
|
// console.log(res);
|
|
|
this.$message({
|
|
|
type: 'success',
|
|
|
message: '用户添加成功!'
|
|
|
});
|
|
|
this.goList();
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
this.$message({
|
|
|
type: 'warning',
|
|
|
message: res.message
|
|
|
});
|
|
|
}
|
|
|
})
|
|
|
- }else if(res.code==200){
|
|
|
+ } else if (res.code == 200) {
|
|
|
//如果code==200 表示用户存在,阻止进一步提交
|
|
|
this.$message({
|
|
|
type: 'warning',
|
|
|
message: '该账号已被注册,请更换其他账号!'
|
|
|
});
|
|
|
}
|
|
|
- }).catch(error=>{
|
|
|
+ }).catch(error => {
|
|
|
this.$message({
|
|
|
type: 'warning',
|
|
|
message: '网络错误,请重试!'
|
|
@@ -609,20 +585,20 @@ export default {
|
|
|
//提交表单 start ------------------------------------------------------------>
|
|
|
//3.编辑表单 start ------------------------------------------------------------>
|
|
|
//获得网站列表
|
|
|
- getWebsiteList(userWebList){
|
|
|
- this.$store.dispatch('pool/getWebList',{page:1,pageSize:1000}).then(res=>{
|
|
|
- if(res.code!=200){
|
|
|
+ getWebsiteList(userWebList) {
|
|
|
+ this.$store.dispatch('pool/getWebList', { page: 1, pageSize: 1000 }).then(res => {
|
|
|
+ if (res.code != 200) {
|
|
|
this.$message.error(res.message)
|
|
|
- }else{
|
|
|
- for(let item of res.data.rows){
|
|
|
+ } else {
|
|
|
+ for (let item of res.data.rows) {
|
|
|
let data = {
|
|
|
- value:item.id,
|
|
|
- label:item.website_name
|
|
|
+ value: item.id,
|
|
|
+ label: item.website_name
|
|
|
}
|
|
|
this.webSiteList.push(data)
|
|
|
}
|
|
|
//如果有数据可以回显
|
|
|
- if(userWebList){
|
|
|
+ if (userWebList) {
|
|
|
console.log("显示编辑用户的所属网站!")
|
|
|
this.form.sszq = userWebList;
|
|
|
}
|
|
@@ -630,14 +606,14 @@ export default {
|
|
|
})
|
|
|
},
|
|
|
//获得用户信息
|
|
|
- getUserInfo(){
|
|
|
+ getUserInfo() {
|
|
|
// console.log("回显数据===");
|
|
|
- this.$store.dispatch('userMember/getUser',{id:this.editId}).then(res=>{
|
|
|
-
|
|
|
-
|
|
|
+ this.$store.dispatch('userMember/getUser', { id: this.editId }).then(res => {
|
|
|
+
|
|
|
+
|
|
|
// 站点标识
|
|
|
this.form.sszq = Number(res.data.sszq);
|
|
|
-
|
|
|
+
|
|
|
this.form.type_id = res.data.type_id;
|
|
|
this.form.user_name = res.data.user_name;
|
|
|
this.form.role_id = res.data.role_id;
|
|
@@ -655,12 +631,12 @@ export default {
|
|
|
this.form.city_arr_id = JSON.parse(res.data.city_arr_id);
|
|
|
}
|
|
|
console.log(this.form.city_arr_id);
|
|
|
- if (this.form.city_arr_id[0]==0) {
|
|
|
- this.isNational=1
|
|
|
+ if (this.form.city_arr_id[0] == 0) {
|
|
|
+ this.isNational = 1
|
|
|
}
|
|
|
|
|
|
//还原有效期
|
|
|
- if(res.data.long_time==0){
|
|
|
+ if (res.data.long_time == 0) {
|
|
|
this.timeList = [
|
|
|
res.data.from_time,
|
|
|
res.data.to_time
|
|
@@ -668,7 +644,7 @@ export default {
|
|
|
this.form.from_time = res.data.from_time;
|
|
|
this.form.to_time = res.data.to_time;
|
|
|
this.form.long_time = 0;
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
this.form.from_time = "";
|
|
|
this.form.to_time = "";
|
|
|
this.form.long_time = 1;
|
|
@@ -678,7 +654,7 @@ export default {
|
|
|
this.form.address = res.data.address;
|
|
|
this.form.zip_code = res.data.zip_code;
|
|
|
this.form.remark = res.data.remark;
|
|
|
-
|
|
|
+
|
|
|
this.form.native_place_arr_id = res.data.native_place_arr_id;
|
|
|
// 处理文件列表
|
|
|
const fileArrayString = res.data.other; // 假设这是一个字符串格式的数组
|
|
@@ -694,16 +670,16 @@ export default {
|
|
|
//获取所有网站列表
|
|
|
//this.getWebsiteList(res.data.sszq);
|
|
|
|
|
|
-
|
|
|
+
|
|
|
})
|
|
|
},
|
|
|
//修改用户
|
|
|
- editData(){
|
|
|
+ editData() {
|
|
|
//当有效期为长期的时候,去掉from_time和to_time字段
|
|
|
- if(this.form.long_time==0){
|
|
|
+ if (this.form.long_time == 0) {
|
|
|
this.form.from_time = formatLocalDate(this.timeList[0]);
|
|
|
this.form.to_time = formatLocalDate(this.timeList[1]);
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
// this.form.from_time = "";
|
|
|
// this.form.to_time = "";
|
|
|
delete this.form.from_time;
|
|
@@ -712,34 +688,34 @@ export default {
|
|
|
this.$refs.form.validate(valid => {
|
|
|
if (valid) {
|
|
|
//1.验证用户是否存在
|
|
|
- this.$store.dispatch('userMember/verifyUserInfo',{id:this.editId,user_name:this.form.user_name}).then(res=>{
|
|
|
- if(res.code==0){
|
|
|
+ this.$store.dispatch('userMember/verifyUserInfo', { id: this.editId, user_name: this.form.user_name }).then(res => {
|
|
|
+ if (res.code == 0) {
|
|
|
console.log(this.form);
|
|
|
- if(!Array.isArray(this.form.address_arr_id)){
|
|
|
+ if (!Array.isArray(this.form.address_arr_id)) {
|
|
|
this.form.address_arr_id = JSON.parse(this.form.address_arr_id);
|
|
|
}
|
|
|
- if(!Array.isArray(this.form.native_place_arr_id)){
|
|
|
+ if (!Array.isArray(this.form.native_place_arr_id)) {
|
|
|
this.form.native_place_arr_id = JSON.parse(this.form.native_place_arr_id);
|
|
|
}
|
|
|
- if(!Array.isArray(this.form.city_arr_id)){
|
|
|
+ if (!Array.isArray(this.form.city_arr_id)) {
|
|
|
this.form.city_arr_id = JSON.parse(this.form.address_arr_id);
|
|
|
}
|
|
|
//this.form.address_arr_id = JSON.parse(this.form.address_arr_id);
|
|
|
//this.form.native_place_arr_id = JSON.parse(this.form.native_place_arr_id);
|
|
|
//this.form.city_arr_id = JSON.parse(this.form.address_arr_id);
|
|
|
-
|
|
|
+
|
|
|
//数组转换为数字
|
|
|
- this.form.sszq=this.form.sszq[0]
|
|
|
+ this.form.sszq = this.form.sszq[0]
|
|
|
|
|
|
//2.设置修改的用户id
|
|
|
this.form.id = this.editId;
|
|
|
//判断用户工作区域是否为全国
|
|
|
- if(this.isNational==1){
|
|
|
+ if (this.isNational == 1) {
|
|
|
this.form.city_arr_id = [0];
|
|
|
}
|
|
|
//3.提交用户修改
|
|
|
//如果code为0表示用户不存在,提交表单
|
|
|
- this.$store.dispatch('userMember/updateUser',this.form).then(res=>{
|
|
|
+ this.$store.dispatch('userMember/updateUser', this.form).then(res => {
|
|
|
console.log(res);
|
|
|
this.$message({
|
|
|
type: 'success',
|
|
@@ -747,14 +723,14 @@ export default {
|
|
|
});
|
|
|
this.goList();
|
|
|
})
|
|
|
- }else if(res.code==200){
|
|
|
+ } else if (res.code == 200) {
|
|
|
//如果code==200 表示用户存在,阻止进一步提交
|
|
|
this.$message({
|
|
|
type: 'warning',
|
|
|
message: '该账号已被注册,请更换其他账号!'
|
|
|
});
|
|
|
}
|
|
|
- }).catch(error=>{
|
|
|
+ }).catch(error => {
|
|
|
this.$message({
|
|
|
type: 'warning',
|
|
|
message: '网络错误,请重试!'
|
|
@@ -764,11 +740,11 @@ export default {
|
|
|
})
|
|
|
},
|
|
|
//重置密码
|
|
|
- resetPassword(){
|
|
|
+ resetPassword() {
|
|
|
let password = Math.random().toString(36).slice(-6); // 随机生成6个字母的组合
|
|
|
|
|
|
- this.$store.dispatch('userMember/resetPassword',{id:this.editId,password:password}).then(res=> {
|
|
|
- if(res.code==200){
|
|
|
+ this.$store.dispatch('userMember/resetPassword', { id: this.editId, password: password }).then(res => {
|
|
|
+ if (res.code == 200) {
|
|
|
this.$message({
|
|
|
type: 'success',
|
|
|
message: '密码重置为:' + password
|
|
@@ -782,16 +758,16 @@ export default {
|
|
|
})
|
|
|
},
|
|
|
//编辑表单 end ------------------------------------------------------------>
|
|
|
- goList(){
|
|
|
+ goList() {
|
|
|
this.$router.push({
|
|
|
path: '/userList',
|
|
|
});
|
|
|
},
|
|
|
//提取身份证号中的出生日期
|
|
|
- extractBirthdayFromIdcard(){
|
|
|
+ extractBirthdayFromIdcard() {
|
|
|
let idCard = this.form.id_card;
|
|
|
// 1. 取出身份证中的生日部分,例如 "20250129"
|
|
|
- let birthStr = idCard.substring(6, 14);
|
|
|
+ let birthStr = idCard.substring(6, 14);
|
|
|
// 2. 截取年、月、日
|
|
|
let year = birthStr.substring(0, 4); // 2025
|
|
|
let month = birthStr.substring(4, 6); // 01
|
|
@@ -802,26 +778,26 @@ export default {
|
|
|
},
|
|
|
|
|
|
|
|
|
-
|
|
|
- get_website_tag_arr_fun(){ //得到站点标识所有内容xx
|
|
|
- this.$store.dispatch('pool/get_website_tag_arr_actions',this.website_tag_params).then(res=> {
|
|
|
- // console.log("res.data.listres.data.list",res.data.list)
|
|
|
-
|
|
|
- res.data.list.forEach(( per_obj ) => {
|
|
|
|
|
|
- let new_per = {
|
|
|
- label: per_obj.name,
|
|
|
- value: per_obj.id,
|
|
|
- }
|
|
|
+ get_website_tag_arr_fun() { //得到站点标识所有内容xx
|
|
|
+ this.$store.dispatch('pool/get_website_tag_arr_actions', this.website_tag_params).then(res => {
|
|
|
+ // console.log("res.data.listres.data.list",res.data.list)
|
|
|
+
|
|
|
+ res.data.list.forEach((per_obj) => {
|
|
|
+
|
|
|
+ let new_per = {
|
|
|
+ label: per_obj.name,
|
|
|
+ value: per_obj.id,
|
|
|
+ }
|
|
|
+
|
|
|
+ this.options_arr.push(new_per)
|
|
|
|
|
|
- this.options_arr.push( new_per )
|
|
|
-
|
|
|
- })
|
|
|
- // console.log("get_website_tag_arr_funget_website_tag_arr_fun")
|
|
|
- // console.log("get_website_tag_arr_funget_website_tag_arr_fun",this.options_arr)
|
|
|
- })
|
|
|
+ })
|
|
|
+ // console.log("get_website_tag_arr_funget_website_tag_arr_fun")
|
|
|
+ // console.log("get_website_tag_arr_funget_website_tag_arr_fun",this.options_arr)
|
|
|
+ })
|
|
|
|
|
|
- },
|
|
|
+ },
|
|
|
|
|
|
|
|
|
},
|
|
@@ -830,19 +806,19 @@ export default {
|
|
|
|
|
|
|
|
|
|
|
|
- mounted(){
|
|
|
+ mounted() {
|
|
|
|
|
|
- this.get_website_tag_arr_fun()//得到站点标识所有内容xx
|
|
|
+ this.get_website_tag_arr_fun()//得到站点标识所有内容xx
|
|
|
|
|
|
- // console.log("this.get_website_tag_arr_fun()==xx",this.get_website_tag_arr_fun())
|
|
|
+ // console.log("this.get_website_tag_arr_fun()==xx",this.get_website_tag_arr_fun())
|
|
|
|
|
|
this.getRoleList();
|
|
|
//判断是新建还是回显
|
|
|
- if(this.$route.query.id!=undefined){
|
|
|
+ if (this.$route.query.id != undefined) {
|
|
|
this.editId = this.$route.query.id;
|
|
|
console.log("编辑用户!")
|
|
|
this.getUserInfo();
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
console.log("添加用户!")
|
|
|
//获取所有网站列表
|
|
|
this.getWebsiteList();
|
|
@@ -854,42 +830,60 @@ export default {
|
|
|
</script>
|
|
|
|
|
|
<style scoped lang="less">
|
|
|
- .PasswordBox {
|
|
|
+.PasswordBox {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+
|
|
|
+ .el-form-item {
|
|
|
+ flex: 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ .PasswordTitle {
|
|
|
+ width: 120px;
|
|
|
+ text-align: right;
|
|
|
+ margin-right: 10px;
|
|
|
+ margin-bottom: 22px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .PasswordBody {
|
|
|
+ flex: 1;
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
- .el-form-item {
|
|
|
- flex: 1;
|
|
|
- }
|
|
|
- .PasswordTitle {
|
|
|
- width:120px;
|
|
|
- text-align: right;
|
|
|
- margin-right: 10px;
|
|
|
- margin-bottom:22px;
|
|
|
- }
|
|
|
- .PasswordBody {
|
|
|
- flex: 1;
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- }
|
|
|
- .show-pwd {
|
|
|
- margin-left: 10px;
|
|
|
- }
|
|
|
}
|
|
|
- .longTimeCheckbox {
|
|
|
+
|
|
|
+ .show-pwd {
|
|
|
margin-left: 10px;
|
|
|
}
|
|
|
- //执行v-deep穿透scope选择器 start------------------------------------------------------------>*/
|
|
|
- ::v-deep .custom-form-item > .el-form-item__label {
|
|
|
- line-height: 140px !important;
|
|
|
- }
|
|
|
- ::v-deep .custom-textarea .el-textarea__inner {
|
|
|
- resize: none; /* 禁止用户拖拽调整大小 */
|
|
|
- }
|
|
|
- ::v-deep .custom-align-right .el-form-item__label {
|
|
|
- text-align: right; /* 设置标签文字右对齐 */
|
|
|
- }
|
|
|
- ::v-deep .el-select {
|
|
|
- width: 100%; /* 禁止用户拖拽调整大小 */
|
|
|
- }
|
|
|
- //执行v-deep穿透scope选择器 end------------------------------------------------------------>*/
|
|
|
-</style>
|
|
|
+}
|
|
|
+
|
|
|
+.longTimeCheckbox {
|
|
|
+ margin-left: 10px;
|
|
|
+}
|
|
|
+
|
|
|
+//执行v-deep穿透scope选择器 start------------------------------------------------------------>*/
|
|
|
+::v-deep .custom-form-item>.el-form-item__label {
|
|
|
+ line-height: 140px !important;
|
|
|
+}
|
|
|
+
|
|
|
+::v-deep .custom-textarea .el-textarea__inner {
|
|
|
+ resize: none;
|
|
|
+ /* 禁止用户拖拽调整大小 */
|
|
|
+}
|
|
|
+
|
|
|
+::v-deep .custom-align-right .el-form-item__label {
|
|
|
+ text-align: right;
|
|
|
+ /* 设置标签文字右对齐 */
|
|
|
+}
|
|
|
+
|
|
|
+::v-deep .el-select {
|
|
|
+ width: 100%;
|
|
|
+ /* 禁止用户拖拽调整大小 */
|
|
|
+}
|
|
|
+
|
|
|
+::v-deep .el-upload-list__item {
|
|
|
+ width: 15%;
|
|
|
+ float: left;
|
|
|
+ margin-right: 20px;
|
|
|
+}
|
|
|
+
|
|
|
+//执行v-deep穿透scope选择器 end------------------------------------------------------------>*/</style>
|