|
@@ -0,0 +1,158 @@
|
|
|
+<template>
|
|
|
+ <div id="dockVip">
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-col :span="24" class="back">
|
|
|
+ <el-button type="primary" size="mini" @click="add()">添加</el-button>
|
|
|
+ <el-button type="primary" size="mini" @click="back()">返回</el-button>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24" class="info">
|
|
|
+ <data-table :fields="fields" @delete="toDelete" :data="list" :opera="opera" @edit="toEdit" :total="total" @query="search"></data-table>
|
|
|
+ </el-col>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-dialog title="Vip用户管理" :visible.sync="dialogVisible" width="40%" :before-close="handleClose">
|
|
|
+ <el-form :model="form">
|
|
|
+ <el-form-item label="用户名" :label-width="formLabelWidth">
|
|
|
+ <el-input v-model="form.vipname" autocomplete="off" placeholder="请输入用户名"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="手机号" :label-width="formLabelWidth">
|
|
|
+ <el-input v-model="form.vipphone" autocomplete="off" maxlength="11" placeholder="请输入手机号"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="密码" :label-width="formLabelWidth">
|
|
|
+ <el-input v-model="form.password" autocomplete="off" placeholder="请输入密码" show-password></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="单位名称" :label-width="formLabelWidth">
|
|
|
+ <el-input v-model="form.company" autocomplete="off" placeholder="请输入单位名称"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="邮箱" :label-width="formLabelWidth">
|
|
|
+ <el-input v-model="form.email" autocomplete="off" placeholder="请输入邮箱"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="简介" :label-width="formLabelWidth">
|
|
|
+ <el-input v-model="form.content" type="textarea" autocomplete="off" placeholder="请输入简介"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer" style="text-align:center;">
|
|
|
+ <el-button type="primary" @click="dialogVisible = false">取 消</el-button>
|
|
|
+ <el-button type="success" @click="onSubmit">保 存</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import { mapState, createNamespacedHelpers } from 'vuex';
|
|
|
+import dataTable from '@/components/data-table.vue';
|
|
|
+const { mapActions: apply } = createNamespacedHelpers('apply');
|
|
|
+const { mapActions: dock } = createNamespacedHelpers('dock');
|
|
|
+const { mapActions: authUser } = createNamespacedHelpers('authUser');
|
|
|
+export default {
|
|
|
+ name: 'dockVip',
|
|
|
+ props: {
|
|
|
+ dockid: null,
|
|
|
+ },
|
|
|
+ components: {
|
|
|
+ dataTable,
|
|
|
+ },
|
|
|
+ data: function() {
|
|
|
+ return {
|
|
|
+ opera: [
|
|
|
+ {
|
|
|
+ label: '修改',
|
|
|
+ icon: 'el-icon-edit',
|
|
|
+ method: 'edit',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '刪除',
|
|
|
+ icon: 'el-icon-delete',
|
|
|
+ method: 'delete',
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ fields: [
|
|
|
+ { label: '联系人', prop: 'vipname' },
|
|
|
+ { label: '联系人电话', prop: 'vipphone' },
|
|
|
+ { label: '单位名称', prop: 'company' },
|
|
|
+ { label: '邮箱', prop: 'email' },
|
|
|
+ { label: '简介', prop: 'content' },
|
|
|
+ ],
|
|
|
+ list: [],
|
|
|
+ total: 0,
|
|
|
+ dialogVisible: false,
|
|
|
+ form: {},
|
|
|
+ formLabelWidth: '100px',
|
|
|
+ };
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ this.search();
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ ...apply(['query', 'delete', 'update']),
|
|
|
+ ...dock({ dockFetch: 'fetch' }),
|
|
|
+ ...authUser({ authUserQuery: 'query' }),
|
|
|
+ async search() {
|
|
|
+ if (this.dockid) {
|
|
|
+ let res = await this.dockFetch(this.dockid);
|
|
|
+ if (this.$checkRes(res)) {
|
|
|
+ this.$set(this, `list`, res.data.apply);
|
|
|
+ this.$set(this, `total`, res.data.apply.length);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 添加
|
|
|
+ add() {
|
|
|
+ this.dialogVisible = true;
|
|
|
+ },
|
|
|
+ // 保存
|
|
|
+ async onSubmit() {
|
|
|
+ if (this.form._id) {
|
|
|
+ alert('修改');
|
|
|
+ } else {
|
|
|
+ const authUserList = await this.authUserQuery();
|
|
|
+ let r = authUserList.data.some(f => f.phone == this.form.vipphone);
|
|
|
+ if (r) {
|
|
|
+ this.$message({
|
|
|
+ message: '手机号已经被注册,请重新输入',
|
|
|
+ type: 'warning',
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ console.log(this.form);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 关闭
|
|
|
+ handleClose(done) {
|
|
|
+ done();
|
|
|
+ },
|
|
|
+ // 修改
|
|
|
+ toEdit({ data }) {
|
|
|
+ this.dialogVisible = true;
|
|
|
+ this.$set(this, `form`, data);
|
|
|
+ console.log(data);
|
|
|
+ },
|
|
|
+ // 刪除
|
|
|
+ toDelete() {
|
|
|
+ console.log('刪除');
|
|
|
+ },
|
|
|
+ // 返回
|
|
|
+ back() {
|
|
|
+ this.$emit('back');
|
|
|
+ },
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ ...mapState(['user']),
|
|
|
+ pageTitle() {
|
|
|
+ return `${this.$route.meta.title}`;
|
|
|
+ },
|
|
|
+ },
|
|
|
+ metaInfo() {
|
|
|
+ return { title: this.$route.meta.title };
|
|
|
+ },
|
|
|
+};
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="less" scoped>
|
|
|
+.back {
|
|
|
+ text-align: right;
|
|
|
+ margin: 0 0 10px 0;
|
|
|
+}
|
|
|
+</style>
|