123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465 |
- <template>
- <div class="pb_content" v-loading="isloading">
- <div class="pb_content_body" style="position: relative">
- <div style="width: 100%; margin: 0px auto">
- <div class="formTop">
- <div class="tx">
- <img :src="ruleForm.headportrait ? ruleForm.headportrait : tx" alt />
- </div>
- </div>
- <div class="reBox">
- <div class="first">
- <div>
- <div style="color: red">*</div>
- 请输入地区
- </div>
- <div>
- <!-- <el-input
- v-model="ruleForm.region"
- style="width: 300px"
- placeholder="请输入市区"
- ></el-input> -->
- <el-cascader size="large" style="width: 300px" clearable :options="region" v-model="selectedOptions"
- @change="handleChange" placeholder="请选择市区">
- </el-cascader>
- </div>
- </div>
- <div class="first">
- <div>详细地址</div>
- <div>
- <el-input v-model="ruleForm.address" style="width: 300px" placeholder="请输入详细地址"></el-input>
- </div>
- </div>
- <div class="first">
- <div>
- <div style="color: red">*</div>
- 学校
- </div>
- <div>
- <el-select v-model="ruleForm.school" filterable clearable @clear="clearSchoolList" :allow-create="false"
- @focus="remoteMethodclick" remote placeholder="请输入学校" :remote-method="remoteMethod" :loading="loading"
- no-data-text="暂未查询到此学校">
- <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
- </el-option>
- </el-select>
- </div>
- </div>
- <div class="first">
- <div>
- <div style="color: red">*</div>
- 姓名
- </div>
- <div>
- <el-input v-model="ruleForm.name" style="width: 300px" placeholder="请输入姓名"></el-input>
- </div>
- </div>
- <div class="first">
- <div>
- <div style="color: red">*</div>
- 联系方式
- </div>
- <div>
- <el-input v-model="ruleForm.phone" style="width: 300px" placeholder="请输入手机号或邮箱"></el-input>
- </div>
- </div>
- <div class="isButton">
- <el-button @click="addRaceUser">确定提交</el-button>
- <el-button @click="goTo('/login')">返回登录</el-button>
- </div>
- </div>
- </div>
- </div>
- <el-dialog :show-close="false" title="提交成功" :visible.sync="dialogVisibleSuccess" :append-to-body="true"
- width="600px" :close-on-click-modal="false" :before-close="handleClose" class="dialog_diy">
- <div class="s_box">
- <div class="s_top">
- <span>恭喜您</span>
- <span>成功申请广东省案例征集活动管理账号!</span>
- </div>
- <div class="s_content">
- <div class="title">以下为您的登录账号密码</div>
- <div class="content">
- <div>
- <span class="user">{{ num }}</span>
- </div>
- <div><span>密码:</span><span class="password">123456</span></div>
- </div>
- <div class="tips1">请截图保存好自己的账号密码</div>
- <div class="tips2">复制账号和密码,登录后进行操作</div>
- </div>
- </div>
- <span slot="footer" class="dialog-footer">
- <el-button type="primary" class="tag-read" style="
- background: rgb(112, 183, 79);
- border-color: rgb(112, 183, 79);
- margin-right: 50px;
- " @click="copy" :data-clipboard-text="copyText">复制账号</el-button>
- <el-button type="primary" @click="goTo('/login')">返回登陆</el-button>
- </span>
- </el-dialog>
- <!-- <div class="copyright">
- 版权所有:广州师培社教育科技有限公司 粤ICP备09132871号
- </div> -->
- </div>
- </template>
- <script>
- import { regionData, CodeToText } from "element-china-area-data";
- import Clipboard from "clipboard";
- const Data = regionData.filter((ele) => {
- return ele.value == "440000";
- });
- export default {
- data() {
- return {
- region: Data[0].children,
- selectedOptions: [], //"440000","440100"
- ruleForm: {
- headportrait: "",
- region: "",
- address: "",
- school: "",
- name: "",
- phone: "",
- },
- tx: require("../assets/avatar2.png"),
- options: [],
- list: [],
- loading: false,
- schoolList: [],
- num: "",
- dialogVisibleSuccess: false,
- copyText: "",
- isloading: false,
- };
- },
- // mounted() {
- // this.list = this.schoolList.map((item) => {
- // return { value: `value:${item}`, label: `学校:${item}` };
- // });
- // },
- methods: {
- handleClose(done) {
- done();
- },
- goTo(path) {
- this.$router.push(path);
- },
- handleChange() {
- if (!this.selectedOptions) {
- return;
- }
- var loc = "";
- for (let i = 0; i < this.selectedOptions.length; i++) {
- loc += CodeToText[this.selectedOptions[i]];
- }
- this.ruleForm.region = "广东省" + loc;
- },
- remoteMethodclick() {
- if (!this.options.length) {
- var _option = []
- for (var i = 0; i < 10; i++) {
- var _a = this.randomNum(0, 10);
- _option.push(this.list[_a])
- }
- this.options = _option
- }
- },
- remoteMethod(query) {
- if (query !== "") {
- this.loading = true;
- setTimeout(() => {
- this.loading = false;
- this.options = this.list.filter((item) => {
- return item.label.toLowerCase().indexOf(query.toLowerCase()) > -1;
- });
- }, 200);
- } else {
- // this.options = [];
- var _option = []
- for (var i = 0; i < 10; i++) {
- var _a = this.randomNum(0, 10);
- _option.push(this.list[_a])
- }
- this.options = _option
- }
- },
- clearSchoolList() {
- // var _option = []
- this.ruleForm.school = ""
- },
- getSchool() {
- this.isloading = true;
- let params = {
- n: "",
- };
- this.ajax
- .get(this.$store.state.api + "getSchool", params)
- .then((res) => {
- this.schoolList = res.data[0];
- this.list = this.schoolList.map((item) => {
- return { value: item.id, label: item.name };
- });
- var _option = []
- for (var i = 0; i < 10; i++) {
- var _a = this.randomNum(0, this.list.length);
- _option.push(this.list[_a])
- }
- this.options = _option
- this.isloading = false;
- })
- .catch((err) => {
- this.isloading = false;
- console.error(err);
- });
- },
- addRaceUser() {
- if (this.ruleForm.region == "") {
- this.$message.error("请填写地区");
- return;
- } else if (this.ruleForm.school == "") {
- this.$message.error("请填写学校");
- return;
- } else if (this.ruleForm.name == "") {
- this.$message.error("请填写姓名");
- return;
- } else if (this.ruleForm.phone == "") {
- this.$message.error("请填写手机号");
- return;
- }
- this.isloading = true
- let params = [
- {
- reg: this.ruleForm.region,
- res: this.ruleForm.address,
- sch: this.ruleForm.school,
- n: this.ruleForm.name,
- p: this.ruleForm.phone,
- t:"1",
- parent:"",
- },
- ];
- this.ajax
- .post(this.$store.state.api + "addRaceUser", params)
- .then((res) => {
- this.$message({
- message: "创建成功",
- type: "success",
- });
- this.isloading = false
- this.dialogVisibleSuccess = true;
- this.num = res.data.num;
- })
- .catch((err) => {
- this.isloading = false
- this.$message.error("创建失败");
- console.error(err);
- });
- },
- randomNum(minNum, maxNum) {
- switch (arguments.length) {
- case 1:
- return parseInt(Math.random() * minNum + 1, 10);
- break;
- case 2:
- return parseInt(Math.random() * (maxNum - minNum + 1) + minNum, 10);
- break;
- default:
- return 0;
- break;
- }
- },
- copy() {
- this.copyText = this.num;
- var clipboard = new Clipboard(".tag-read");
- clipboard.on("success", (e) => {
- this.$message.success("复制成功");
- console.log("复制成功");
- clipboard.destroy(); // 释放内存
- });
- clipboard.on("error", (e) => {
- console.log("不支持复制,该浏览器不支持自动复制");
- this.$message.error("不支持复制,该浏览器不支持自动复制");
- clipboard.destroy(); // 释放内存
- });
- },
- },
- created() {
- this.getSchool();
- },
- };
- </script>
- <style scoped>
- .dialog_diy>>>.el-dialog__header {
- background: #3c3c3c !important;
- padding: 15px 20px;
- }
- .dialog_diy>>>.el-dialog__title {
- color: #fff;
- }
- .dialog_diy>>>.el-dialog__headerbtn {
- top: 19px;
- }
- .dialog_diy>>>.el-dialog__headerbtn .el-dialog__close {
- color: #fff;
- }
- .dialog_diy>>>.el-dialog__headerbtn .el-dialog__close:hover {
- color: #fff;
- }
- .dialog_diy>>>.el-dialog__body,
- .dialog_diy>>>.el-dialog__footer {
- background: #fafafa;
- }
- .dialog_diy>>>.el-dialog__footer {
- display: flex;
- justify-content: center;
- }
- .pb_content {
- display: flex;
- align-items: center;
- justify-content: center;
- width: 100%;
- height: 100%;
- }
- .pb_content_body {
- background: #fff;
- padding: 20px 0;
- width: 500px;
- border-radius: 5px;
- }
- .formTop {
- display: flex;
- align-items: center;
- justify-content: center;
- margin: 20px 0;
- }
- .formTop>>>.el-form {
- margin: 0 auto;
- }
- .tx {
- width: 100px;
- /* margin-right: 15px; */
- min-width: 50px;
- min-height: 50px;
- }
- .tx>img {
- width: 100%;
- height: 100%;
- }
- .reBox {
- width: 100%;
- display: flex;
- flex-direction: column;
- flex-wrap: nowrap;
- align-content: center;
- justify-content: center;
- align-items: center;
- }
- .first {
- margin: 5px 0;
- width: 300px;
- }
- .first>div:nth-child(1) {
- margin-bottom: 5px;
- font-weight: bold;
- display: flex;
- flex-direction: row;
- flex-wrap: nowrap;
- justify-content: flex-start;
- align-items: center;
- }
- .first>div:nth-child(2)>.el-select {
- width: 300px;
- }
- .isButton {
- margin-top: 20px;
- }
- .isButton>>>.el-button {
- background: #5492ff !important;
- color: #fff !important;
- cursor: pointer;
- }
- .copyright {
- position: absolute;
- left: 20px;
- bottom: 15px;
- }
- .s_box {
- background: #fff;
- border-radius: 5px;
- }
- .s_top {
- width: 90%;
- margin: 0 auto;
- border-bottom: 1px solid #eee;
- padding: 20px 0;
- display: flex;
- flex-direction: column;
- font-size: 22px;
- }
- .s_top span:nth-child(1) {
- font-size: 26px;
- }
- .s_content {
- width: 90%;
- margin: 0 auto;
- padding: 20px 0 50px;
- }
- .s_content .title {
- font-size: 18px;
- }
- .s_content .content {
- padding: 50px 0;
- display: flex;
- flex-direction: column;
- align-items: center;
- }
- .s_content .content div+div {
- margin-top: 20px;
- }
- .s_content .content .user {
- font-size: 20px;
- color: rgb(64, 145, 234);
- }
- .s_content .content .password {
- font-size: 24px;
- color: rgb(64, 145, 234);
- }
- .s_content .tips1 {
- color: rgb(162, 162, 162);
- }
- .s_content .tips2 {
- font-size: 18px;
- }
- </style>
|