Przeglądaj źródła

修改信息生成逻辑和增加学号

vue_2
leiyun 4 lat temu
rodzic
commit
5239281c18
1 zmienionych plików z 191 dodań i 196 usunięć
  1. +191
    -196
      src/views/UserAuto.vue

+ 191
- 196
src/views/UserAuto.vue Wyświetl plik

@@ -1,207 +1,202 @@
<!-- -->
<template>
<div class="user-auto">
<!--{{list}}-->
<el-input-number v-model="count" :min="1" :max="1000" label="描述文字" :step="100"></el-input-number>
<el-button type="primary" @click="getUserList">生成数据</el-button>
<el-button type="primary" @click="exportExcel">导出数据</el-button>
<el-table :data="list"
style="width: 100%">
<el-table-column prop="name"
label="姓名"
width="180">
</el-table-column>
<el-table-column prop="phone"
label="手机号"
width="180">
</el-table-column>
<el-table-column prop="sex"
label="性别"
width="180">
</el-table-column>
<el-table-column prop="cardNo"
label="身份证">
</el-table-column>
</el-table>
</div>
<div class="user-auto">
<!--{{list}}-->
<el-input-number v-model="count"
:min="1"
:max="1000"
label="描述文字"
:step="100"></el-input-number>
<el-button type="primary"
@click="getUserList">生成数据</el-button>
<el-button type="primary"
@click="exportExcel">导出数据</el-button>
<el-table :data="list"
style="width: 100%">
<el-table-column prop="name"
label="姓名"
width="180">
</el-table-column>
<el-table-column prop="phone"
label="手机号"
width="180">
</el-table-column>
<el-table-column prop="sex"
label="性别"
width="180">
</el-table-column>
<el-table-column prop="cardNo"
label="身份证">
</el-table-column>
<el-table-column prop="studentNo"
label="学号">
</el-table-column>
</el-table>
</div>
</template>

<script>
//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
//例如:import 《组件名称》 from '《组件路径》';
import moment from "moment";
import excelExport from "@/utils/excelExport";
//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
//例如:import 《组件名称》 from '《组件路径》';
import moment from "moment";
import excelExport from "@/utils/excelExport";

export default {
name: "UserAuto",
props: {},
//import引入的组件需要注入到对象中才能使用
components: {
//defaultPage ,
},
data() {
return {
list: [],
header: [
{ prop: "name", label: "姓名" },
{ prop: "phone", label: "手机号" },
{ prop: "sex", label: "性别" },
{ prop: "cardNo", label: "身份证号" },
],
count: 100,
}
},
//监听属性 类似于data概念
computed: {},
//监控data中的数据变化
watch: {},
//生命周期 - 创建完成(可以访问当前this实例)
async created() { },
//生命周期 - 挂载完成(可以访问DOM元素)
async mounted() {
//this.getUserList();
},
//方法集合
methods: {
exportExcel() {
excelExport(this.header, this.list, `随机身份证-${this.list.length}条`);
},
getUserList() {
this.list = [];
for (let i = 0; i < this.count; i++) {
let item = {
name: this.getName(),
phone: this.getMoble(),
cardNo: this.getCardNo(),
}
item.sex = this.getSex(item.cardNo);
this.list.push(item);
}
},
getSex(cardNo) {
let sexNo = parseInt(cardNo[16]) % 2;
return sexNo == 1 ? '男' : '女';
},
getName() {
let familyNames = new Array(
"赵", "钱", "孙", "李", "周", "吴", "郑", "王", "冯", "陈",
"褚", "卫", "蒋", "沈", "韩", "杨", "朱", "秦", "尤", "许",
"何", "吕", "施", "张", "孔", "曹", "严", "华", "金", "魏",
"陶", "姜", "戚", "谢", "邹", "喻", "柏", "水", "窦", "章",
"云", "苏", "潘", "葛", "奚", "范", "彭", "郎", "鲁", "韦",
"昌", "马", "苗", "凤", "花", "方", "俞", "任", "袁", "柳",
"酆", "鲍", "史", "唐", "费", "廉", "岑", "薛", "雷", "贺",
"倪", "汤", "滕", "殷", "罗", "毕", "郝", "邬", "安", "常",
"乐", "于", "时", "傅", "皮", "卞", "齐", "康", "伍", "余",
"元", "卜", "顾", "孟", "平", "黄", "和", "穆", "萧", "尹",
"司马", "东方", "欧阳", "诸葛", "尉迟", "端木", "姚", "颜", "成",
"邵", "湛", "汪", "祁", "毛", "禹", "狄", "米", "贝", "明", "臧",
"计", "伏", "成", "戴", "谈", "宋", "茅", "庞", "熊", "纪", "舒",
"屈", "项", "祝", "董", "梁", "杜", "阮", "蓝", "闽", "席", "季",
"麻", "强", "贾", "路", "娄", "危", "江", "童", "颜", "郭", "梅",
"盛", "林", "刁", "锺", "徐", "丘", "骆", "高", "夏", "蔡", "田",
"樊", "胡", "凌", "霍", "虞", "万", "支", "柯", "昝", "管", "卢",
"莫", "经", "房", "裘", "缪", "干", "解", "应", "宗", "丁", "宣",
"贲", "邓", "郁", "单", "杭", "洪", "包", "诸", "左", "石", "崔",
"吉", "钮", "龚", "程", "嵇", "邢", "滑", "裴", "陆", "荣", "翁",
"荀", "羊", "於", "惠", "甄", "麹", "家", "封", "芮", "羿", "储",
"靳", "汲", "邴", "糜", "松", "井", "段", "富", "巫", "乌", "焦",
"巴", "弓", "牧", "隗", "山", "谷", "车", "侯", "宓", "蓬", "全",
"郗", "班", "仰", "秋", "仲", "伊", "宫", "宁", "仇", "栾", "暴",
"甘", "斜", "厉", "戎", "祖", "武", "符", "刘", "景", "詹", "束",
"龙", "叶", "幸", "司", "韶", "郜", "黎", "蓟", "薄", "印", "宿",
"白", "怀", "蒲", "邰", "从", "鄂", "索", "咸", "籍", "赖", "卓",
"蔺", "屠", "蒙", "池", "乔", "阴", "郁", "胥", "能", "苍", "双",
"闻", "莘", "党", "翟", "谭", "贡", "劳", "逄", "姬", "申", "扶",
"堵", "冉", "宰", "郦", "雍", "郤", "璩", "桑", "桂", "濮", "牛",
"寿", "通", "边", "扈", "燕", "冀", "郏", "浦", "尚", "农", "温",
"别", "庄", "晏", "柴", "瞿", "阎", "充", "慕", "连", "茹", "习",
"宦", "艾", "鱼", "容", "向", "古", "易", "慎", "戈", "廖", "庾",
"终", "暨", "居", "衡", "步", "都", "耿", "满", "弘", "匡", "国",
"文", "寇", "广", "禄", "阙", "东", "欧", "殳", "沃", "利", "蔚",
"越", "夔", "隆", "师", "巩", "厍", "聂", "晁", "勾", "敖", "融",
"冷", "訾", "辛", "阚", "那", "简", "饶", "空", "曾", "毋", "沙",
"乜", "养", "鞠", "须", "丰", "巢", "关", "蒯", "相", "查", "后",
"荆", "红", "游", "竺", "权", "逑", "盖", "益", "桓", "公", "万俟",
"司马", "上官", "欧阳", "夏侯", "诸葛", "闻人", "东方", "赫连", "皇甫",
"尉迟", "公羊", "澹台", "公冶", "宗政", "濮阳", "淳于", "单于", "太叔",
"申屠", "公孙", "仲孙", "轩辕", "令狐", "锺离", "宇文", "长孙", "慕容",
"鲜于", "闾丘", "司徒", "司空", "丌官", "司寇", "仉", "督", "子车", "颛孙",
"端木", "巫马", "公西", "漆雕", "乐正", "壤驷", "公良", "拓拔", "夹谷",
"宰父", "谷梁", "晋", "楚", "阎", "法", "汝", "鄢", "涂", "钦", "段干",
"百里", "东郭", "南门", "呼延", "归", "海", "羊舌", "微生", "岳", "帅",
"缑", "亢", "况", "后", "有", "琴", "梁丘", "左丘", "东门", "西门",
"商", "牟", "佘", "佴", "伯", "赏", "南宫", "墨", "哈", "谯", "笪",
"年", "爱", "阳", "佟", "第五", "言", "福"
);
let givenNames = new Array(
"子璇", "淼", "国栋", "夫子", "瑞堂", "甜", "敏", "尚", "国贤", "贺祥", "晨涛",
"昊轩", "易轩", "益辰", "益帆", "益冉", "瑾春", "瑾昆", "春齐", "杨", "文昊",
"东东", "雄霖", "浩晨", "熙涵", "溶溶", "冰枫", "欣欣", "宜豪", "欣慧", "建政",
"美欣", "淑慧", "文轩", "文杰", "欣源", "忠林", "榕润", "欣汝", "慧嘉", "新建",
"建林", "亦菲", "林", "冰洁", "佳欣", "涵涵", "禹辰", "淳美", "泽惠", "伟洋",
"涵越", "润丽", "翔", "淑华", "晶莹", "凌晶", "苒溪", "雨涵", "嘉怡", "佳毅",
"子辰", "佳琪", "紫轩", "瑞辰", "昕蕊", "萌", "明远", "欣宜", "泽远", "欣怡",
"佳怡", "佳惠", "晨茜", "晨璐", "运昊", "汝鑫", "淑君", "晶滢", "润莎", "榕汕",
"佳钰", "佳玉", "晓庆", "一鸣", "语晨", "添池", "添昊", "雨泽", "雅晗", "雅涵",
"清妍", "诗悦", "嘉乐", "晨涵", "天赫", "玥傲", "佳昊", "天昊", "萌萌", "若萌",
"小华", "子君", "莉莉", "云", "荳荳", "港女", "颜夕", "丐帮", "时韵", "琏译",
"西夏", "羡鱼", "诺ル", "夜殇", "馨瑜", "霸姐", "霸娘", "嬲噻", "孤幽", "倦爱",
"霸心", "赤血", "云狂", "兮羽", "顾依", "伽罗", "颜淡", "陈醉", "裴若", "池渊",
"林莞", "踏雪", "伤晴", "若栖", "蜀黍", "琴月", "湘琴", "琴栀", "琴笙", "长琴",
"琴箫", "莫愁", "旧念", "他言", "性福", "贼心", "欲醉", "撩衣", "敬畏", "网酷",
"淡漠", "独然", "团宠", "拂扇", "学妹", "污痞", "清烟", "滞留", "诗意", "勼欢",
"橙海", "浪独", "真怂", "狂徒"
);
let i = parseInt(familyNames.length * Math.random());
let familyName = familyNames[i];
let j = parseInt(givenNames.length * Math.random());
let givenName = givenNames[j];
let name = familyName + givenName;
return name;
},
getMoble() {
let prefixArray = new Array("133", "149", "153", "173", "177", "180", "181",
"189", "199", "130", "131", "132", "145", "155", "156", "166", "171",
"175", "176", "185", "186", "134", "135", "136", "137", "138", "139",
"147", "150", "151", "152", "157", "158", "159", "178", "182", "183",
"184", "187", "188", "198");
let i = parseInt(prefixArray.length * Math.random());
let prefix = prefixArray[i];
for (let j = 0; j < 8; j++) {
prefix = prefix + Math.floor(Math.random() * 10);
}
return prefix;
},
getCardNo() {
let coefficientArray = ["7", "9", "10", "5", "8", "4", "2", "1", "6", "3", "7", "9", "10", "5", "8", "4", "2"];// 加权因子
let lastNumberArray = ["1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2"];// 校验码
let addressList = ["500100", "510101", "510104", "510105", "510106", "510107", "510108", "510112", "510113"];
let address = addressList[parseInt(addressList.length * Math.random())]; // 住址
let randomDay = parseInt(15 * 365 * Math.random());
let birthday = moment("2000-01-01").add(randomDay, "day").format("YYYYMMDD"); // 生日
let s = Math.floor(Math.random() * 10).toString() + Math.floor(Math.random() * 10).toString() + Math.floor(Math.random() * 10).toString();
let array = (address + birthday + s).split("");
let total = 0;
for (let i in array) {
total = total + parseInt(array[i]) * parseInt(coefficientArray[i]);
}
let lastNumber = lastNumberArray[parseInt(total % 11)];
let id_no_String = address + birthday + s + lastNumber;
return id_no_String;
}
},
//当前页面的filter
filters: {}
export default {
name: "UserAuto",
props: {},
//import引入的组件需要注入到对象中才能使用
components: {
//defaultPage ,
},
data () {
return {
list: [],
header: [
{ prop: "name", label: "姓名" },
{ prop: "phone", label: "手机号" },
{ prop: "sex", label: "性别" },
{ prop: "cardNo", label: "身份证号" },
],
count: 100,
}
},
//监听属性 类似于data概念
computed: {},
//监控data中的数据变化
watch: {},
//生命周期 - 创建完成(可以访问当前this实例)
async created () { },
//生命周期 - 挂载完成(可以访问DOM元素)
async mounted () {
//this.getUserList();

},
//方法集合
methods: {
exportExcel () {
excelExport(this.header, this.list, `随机身份证-${this.list.length}条`);
},
getUserList () {
this.list = [];
let stuNo = moment().format("YYYYMMDDHHmmss")
for (let i = 0; i < this.count; i++) {
let item = {
name: this.getName(),
phone: this.getMoble(),
cardNo: this.getCardNo(),
studentNo: `${stuNo}${this.gteNo(i+1)}`
}
item.sex = this.getSex(item.cardNo);
this.list.push(item);
}
},
gteNo (i) {
if (i < 10) {
return `0000${i}`
} else if (i < 100) {
return `000${i}`
} else if (i < 1000) {
return `00${i}`
} else if (i < 10000) {
return `0${i}`
} else {
return `${i}`
}
},
getSex (cardNo) {
let sexNo = parseInt(cardNo[16]) % 2;
return sexNo == 1 ? '男' : '女';
},
getName () {
let familyNames = new Array(
"赵", "钱", "孙", "李", "周", "吴", "郑", "王", "冯", "陈",
"褚", "卫", "蒋", "沈", "韩", "杨", "朱", "秦", "尤", "许",
"何", "吕", "施", "张", "孔", "曹", "严", "华", "金", "魏",
"陶", "姜", "戚", "谢", "邹", "喻", "柏", "水", "窦", "章",
"云", "苏", "潘", "葛", "奚", "范", "彭", "郎", "鲁", "韦",
"昌", "马", "苗", "凤", "花", "方", "俞", "任", "袁", "柳",
"酆", "鲍", "史", "唐", "费", "廉", "岑", "薛", "雷", "贺",
"倪", "汤", "滕", "殷", "罗", "毕", "郝", "邬", "安", "常",
"乐", "于", "时", "傅", "皮", "卞", "齐", "康", "伍", "余",
"元", "卜", "顾", "孟", "平", "黄", "和", "穆", "萧", "尹",
"杨", "李", "李", "张", "韩", "范", "赵", "马", "李", "刘", "林", "陈", "容", "林", "杨", "应",
"羽", "秦", "何", "谢", "张", "魏", "韩", "刘", "吴", "郑", "林", "陈", "阮", "唐", "刘", "吴",
"郑", "古", "那", "白", "胡", "周", "罗", "陈", "潘", "李", "李", "杜", "陈", "陈", "成", "吴",
"汪", "钟", "孙", "欧", "杨", "邓", "郑", "白", "陈", "钱", "大", "汪", "王", "迪", "盛", "郑",
"王", "易", "王", "宋", "张", "黄", "王", "王", "王", "蔡", "陈", "张", "华", "黄", "王", "官",
"吴", "梁", "徐", "马", "江", "井", "杨", "吴", "陈", "黄", "舒", "苏", "白", "邓", "郑", "霍",
"马", "冯", "谭", "熊", "张", "薛", "刘", "佟", "孙", "胡", "阚", "纪", "毛", "关", "鹿", "王",
"马", "马", "王", "贾", "赵"
);
let givenNames = new Array(
"子璇", "淼", "国栋", "夫子", "瑞堂", "甜", "敏", "尚", "国贤", "贺祥", "晨涛",
"昊轩", "易轩", "益辰", "益帆", "益冉", "瑾春", "瑾昆", "春齐", "杨", "文昊",
"东东", "雄霖", "浩晨", "熙涵", "溶溶", "冰枫", "欣欣", "宜豪", "欣慧", "建政",
"美欣", "淑慧", "文轩", "文杰", "欣源", "忠林", "榕润", "欣汝", "慧嘉", "新建",
"建林", "亦菲", "林", "冰洁", "佳欣", "涵涵", "禹辰", "淳美", "泽惠", "伟洋",
"涵越", "润丽", "翔", "淑华", "晶莹", "凌晶", "苒溪", "雨涵", "嘉怡", "佳毅",
"子辰", "佳琪", "紫轩", "瑞辰", "昕蕊", "萌", "明远", "欣宜", "泽远", "欣怡",
"佳怡", "佳惠", "晨茜", "晨璐", "运昊", "汝鑫", "淑君", "晶滢", "润莎", "榕汕",
"佳钰", "佳玉", "晓庆", "一鸣", "语晨", "添池", "添昊", "雨泽", "雅晗", "雅涵",
"清妍", "诗悦", "嘉乐", "晨涵", "天赫", "玥傲", "佳昊", "天昊", "萌萌", "若萌",
"幂", "易峰", "宇春", "靓颖", "雪", "冰冰", "薇", "苏", "小璐", "涛", "依晨", "乔恩", "祖儿",
"心如", "丞琳", "采儿", "泉", "岚", "炅", "娜", "杰", "晨", "庚", "德华", "尊", "元畅", "俊杰",
"浩民", "经天", "嫣", "诗诗", "昕", "爽", "力娜扎", "英", "百何", "歌", "杰伦", "志祥", "奕迅",
"玮柏", "晨", "维嘉", "海涛", "小春", "翔", "龙", "奇隆", "峰", "汉良", "怡", "阳娜娜", "紫", "伦",
"合惠子", "敬亭", "学冬", "枫", "张伟", "涵", "一博", "丽热巴", "一伦", "业成", "俊凯", "烊千玺",
"源", "小宝", "艺兴", "渤", "迅", "宝强", "祖蓝", "徐坤", "立农", "大大", "晨宇", "子韬", "鹤棣",
"鸿", "希泽", "靖康", "海乔", "天宇", "疏影", "柏然", "祐宁", "映洁", "赫", "晓明", "淇", "有朋",
"举纲", "超", "恺", "建华", "可", "绍峰", "松韵", "梓淇", "丹峰", "之谦", "宪华", "丽娅", "红雷",
"一天", "清子", "凌尘", "晓彤", "晓彤", "晗", "传君", "思超", "思纯", "珂", "乃亮", "丽颖"
);
let i = parseInt(familyNames.length * Math.random());
let familyName = familyNames[i];
let j = parseInt(givenNames.length * Math.random());
let givenName = givenNames[j];
let name = familyName + givenName;
return name;
},
getMoble () {
let prefixArray = new Array("133", "149", "153", "173", "177", "180", "181",
"189", "199", "130", "131", "132", "145", "155", "156", "166", "171",
"175", "176", "185", "186", "134", "135", "136", "137", "138", "139",
"147", "150", "151", "152", "157", "158", "159", "178", "182", "183",
"184", "187", "188", "198");
let i = parseInt(prefixArray.length * Math.random());
let prefix = prefixArray[i];
for (let j = 0; j < 8; j++) {
prefix = prefix + Math.floor(Math.random() * 10);
}
return prefix;
},
getCardNo () {
let coefficientArray = ["7", "9", "10", "5", "8", "4", "2", "1", "6", "3", "7", "9", "10", "5", "8", "4", "2"];// 加权因子
let lastNumberArray = ["1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2"];// 校验码
let addressList = ["500100", "510101", "510104", "510105", "510106", "510107", "510108", "510112", "510113"];
let address = addressList[parseInt(addressList.length * Math.random())]; // 住址
let randomDay = parseInt(40 * 365 * Math.random());
let birthday = moment("1980-01-01").add(randomDay, "day").format("YYYYMMDD"); // 生日
let s = Math.floor(Math.random() * 10).toString() + Math.floor(Math.random() * 10).toString() + Math.floor(Math.random() * 10).toString();
let array = (address + birthday + s).split("");
let total = 0;
for (let i in array) {
total = total + parseInt(array[i]) * parseInt(coefficientArray[i]);
}
let lastNumber = lastNumberArray[parseInt(total % 11)];
let id_no_String = address + birthday + s + lastNumber;
return id_no_String;
}
},
//当前页面的filter
filters: {}
}
</script>
<!-- 单页私有css -->
<style scoped>

.user-auto {
padding: 30px;
background-color: #fff;
border-radius: 4px;
min-height: 600px;
}
.user-auto {
padding: 30px;
background-color: #fff;
border-radius: 4px;
min-height: 600px;
}
</style>

Ładowanie…
Anuluj
Zapisz