Browse Source

移动端广告位管理

yanliming 3 years ago
parent
commit
eb368b5cea

+ 44 - 2
src/api/base/memberInfo.js

@@ -5,9 +5,18 @@ function pageList(formData){
   return request.post(constant.serverUrl + "/base/memberInfo/pageList", formData);
 }
 
+function pageListDel(formData){
+  return request.post(constant.serverUrl + "/base/memberInfo/pageListDel", formData);
+}
+
 function list(){
     return request.post(constant.serverUrl + "/base/memberInfo/list");
-  }
+}
+
+function checkPageList(formData){
+  return request.post(constant.serverUrl + "/base/memberInfo/checkPageList",formData);
+}
+
 
 function create(){
   return request.get(constant.serverUrl + "/base/memberInfo/create");
@@ -37,10 +46,32 @@ function update(formModel){
   });
 }
 
+function updateFaceImg(formModel){  
+  return request.post(constant.serverUrl + "/base/memberInfo/updateFaceImg", formModel,{
+    headers: {
+      "Content-Type": "application/json"
+    }
+  });
+}
+
+function checkMemberInfo(formModel){  
+  return request.post(constant.serverUrl + "/base/memberInfo/checkMemberInfo", formModel,{
+    headers: {
+      "Content-Type": "application/json"
+    }
+  });
+}
+
+
+
 function remove(id){
   return request.post(constant.serverUrl + "/base/memberInfo/delete/" + id);
 }
 
+function activation(id){
+  return request.post(constant.serverUrl + "/base/memberInfo/activation/" + id);
+}
+
 function batchRemove(idList){
   return request.post(constant.serverUrl + "/base/memberInfo/batchDelete",idList,{
     headers: {
@@ -49,7 +80,18 @@ function batchRemove(idList){
   });
 }
 
+function batchActivation(idList){
+  return request.post(constant.serverUrl + "/base/memberInfo/batchActivation",idList,{
+    headers: {
+      "Content-Type": "application/json"
+    }
+  });
+}
+
+
+
 
 export default {
-  pageList,create,edit,add,update,remove,batchRemove,list,view
+  pageList,create,edit,add,update,updateFaceImg,remove,batchRemove,list,view,checkPageList,checkMemberInfo,
+  pageListDel,activation,batchActivation
 }

+ 51 - 0
src/api/base/mobileBannerInfo.js

@@ -0,0 +1,51 @@
+import request from '@/utils/request'
+import constant from '@/constant'
+
+function pageList(formData){
+  return request.post(constant.serverUrl + "/base/mobileBannerInfo/pageList", formData);
+}
+
+function list(formData){
+    return request.post(constant.serverUrl + "/base/mobileBannerInfo/list",formData);
+}
+
+function create(){
+  return request.get(constant.serverUrl + "/base/mobileBannerInfo/create");
+}
+
+function edit(id){
+  return request.get(constant.serverUrl + "/base/mobileBannerInfo/edit/" + id);
+}
+
+function add(formModel){
+  return request.post(constant.serverUrl + "/base/mobileBannerInfo/add", formModel,{
+    headers: {
+      "Content-Type": "application/json"
+    }
+  });
+}
+
+function update(formModel){  
+  return request.post(constant.serverUrl + "/base/mobileBannerInfo/update", formModel,{
+    headers: {
+      "Content-Type": "application/json"
+    }
+  });
+}
+
+function remove(id){
+  return request.post(constant.serverUrl + "/base/mobileBannerInfo/delete/" + id);
+}
+
+function batchRemove(idList){
+  return request.post(constant.serverUrl + "/base/mobileBannerInfo/batchDelete",idList,{
+    headers: {
+      "Content-Type": "application/json"
+    }
+  });
+}
+
+
+export default {
+  pageList,create,edit,add,update,remove,batchRemove,list
+}

+ 297 - 0
src/components/MultiSelectTree/index.vue

@@ -0,0 +1,297 @@
+<template>
+  <el-select ref="treeSelect" 
+  :size="size" 
+  :multiple="true"
+  :value="value"
+  @change="selectChange"
+  :clearable="clearable" 
+  @clear="clearHandle" :style="{width:width}">
+    <el-input :size="size" class="selectInput" :placeholder="placeholder" v-model="filterText"></el-input>
+    <el-option value="">
+      <el-tree
+        id="tree-option"
+        ref="selectTree"
+        :accordion="accordion"
+        :data="optionData"
+        :props="props"
+        :node-key="props.value"
+        :default-expanded-keys="defaultExpandedKey"
+        :filter-node-method="filterNode"
+        @node-click="handleNodeClick"
+      ></el-tree>
+    </el-option>
+    <el-option
+      v-for="item in selectedItems" :key="item.id"
+      :value="item.id" :label="item.name" style="display:none;"></el-option>
+  </el-select>
+</template>
+<script>
+export default {
+  name: "el-multi-tree-select",
+  props: {
+    /* 配置项 */
+    props: {
+      type: Object,
+      default: () => {
+        return {
+          value: "id", // ID字段名
+          label: "name", // 显示名称
+          children: "children" // 子级字段名
+        };
+      }
+    },
+    /* 选项列表数据(树形结构的对象数组) */
+    options: {
+      type: Array,
+      default: () => {
+        return [];
+      }
+    },
+    /* 初始值 */
+    value: {
+      type: Array,
+      default: () => {
+        return null;
+      }
+    },
+    size: {
+      type: String,
+      default: () => {
+        return "small";
+      }
+    },    
+    width: {
+      type: String,
+      default: () => {
+        return "200px";
+      }
+    },
+    /* 可清空选项 */
+    clearable: {
+      type: Boolean,
+      default: () => {
+        return true;
+      }
+    },
+    /* 自动收起 */
+    accordion: {
+      type: Boolean,
+      default: () => {
+        return true;
+      }
+    },
+    placeholder: {
+      type: String,
+      default: () => {
+        return "检索关键字";
+      }
+    }
+  },
+  computed: {
+    /* 转树形数据 */
+    optionData() {
+      //第一个节点为根节点
+      if (this.options.length > 0) {
+        //var rootId = this.options[0].id;
+
+        let cloneData = JSON.parse(JSON.stringify(this.options)); // 对源数据深度克隆
+        
+        // return cloneData.filter(father => {
+        //   // 循环所有项,并添加children属性
+        //   let branchArr = cloneData.filter(
+        //     child => father.id == child.parentId
+        //   ); // 返回每一项的子级数组
+        //   branchArr.length > 0 ? (father.children = branchArr) : ""; //给父级添加一个children属性,并赋值
+        //   return father.id == rootId || father.parentId == null; //返回第一层
+        // });
+        return this.listToTree(cloneData);
+      } else {
+        return [];
+      }
+    }
+  },
+  data() {
+    return {
+      filterText: "",
+      selectedItems: [{
+        id: "",
+        name: ""
+      }],
+      defaultExpandedKey: [],
+      optionMap: {}
+    };
+  },
+  mounted() {
+    this.initHandle();
+  },
+  methods: {
+    listToTree(list) { // 将普通列表转换为树结构的列表
+      if (!list || !list.length) {
+        return []
+      }
+      
+      let treeListMap = {};
+      
+      for (let item of list) {
+        treeListMap[item.id] = item
+      }
+
+      for (let i = 0; i < list.length; i++) {
+        if (list[i].parentId && treeListMap[list[i].parentId]) {
+          if (!treeListMap[list[i].parentId].children) {
+            treeListMap[list[i].parentId].children = []
+          }
+          treeListMap[list[i].parentId].children.push(list[i]);
+          list.splice(i, 1);
+          i--
+        }
+      }
+
+      return list;
+    },
+    // 初始化值
+    initHandle() {
+      console.log("options.length=" + this.options.length);
+
+      this.selectedItems = [];
+
+      if(this.value!=null){
+        for(var i=0;i<this.value.length;i++){
+          //var arr = this.options.filter(item=>item.id == this.value[i]);
+          var id = this.value[i];
+          var name = this.optionMap[id];
+
+          this.selectedItems.push({
+            id: id,
+            name: name
+          });
+        }
+      }
+
+      // if(this.valueId){
+      //   this.$refs.selectTree.setCurrentKey(this.valueId); // 设置默认选中
+      //   this.defaultExpandedKey = [this.valueId]; // 设置默认展开
+      // }
+
+      this.initScroll();
+    },
+    // 初始化滚动条
+    initScroll() {
+      this.$nextTick(() => {
+        let scrollWrap = document.querySelectorAll(
+          ".el-scrollbar .el-select-dropdown__wrap"
+        )[0];
+        let scrollBar = document.querySelectorAll(
+          ".el-scrollbar .el-scrollbar__bar"
+        );
+        scrollWrap.style.cssText =
+          "margin: 0px; max-height: none; overflow: hidden;";
+        scrollBar.forEach(ele => (ele.style.width = 0));
+      });
+    },
+    // 切换选项
+    handleNodeClick(node) {
+      var name = node[this.props.label];
+      var id = node[this.props.value];
+
+      if(this.value!=null){
+        var arr = this.value.filter(item=>item == id);
+
+        console.log("arr.length=" + arr.length);
+        
+        if(arr.length==0){
+          this.value.push(id);
+
+          //已对value进行监视
+          //this.$emit("input", this.value);
+        }
+      }
+      else{
+        this.$emit("input", [id]);
+      }
+    },
+    // 清除选中
+    clearHandle() {
+      this.selectedItems = [];
+      this.defaultExpandedKey = [];
+      this.clearSelected();
+      this.$emit("input", null);
+    },
+    selectChange(newVal) {
+      console.log(newVal);
+      this.$emit("input", newVal);
+    },
+    /* 清空选中样式 */
+    clearSelected() {
+      let allNode = document.querySelectorAll("#tree-option .el-tree-node");
+      allNode.forEach(element => element.classList.remove("is-current"));
+    },
+    filterNode(value, data) {
+      if (!value) return true;
+      return data.name.indexOf(value) !== -1;
+    }
+  },
+  watch: {
+    value(newVal,oldVal) {
+      this.valueId = newVal;
+
+      if(newVal=='') {
+        this.clearHandle();
+      }
+
+      this.initHandle();
+    },
+    options(newVal,oldVal) {
+      //如果options读取慢,则
+      if(oldVal==null || oldVal.length==0){
+        setTimeout(()=>{
+          this.initHandle();
+        },100);
+      }
+
+      if(newVal!=null){
+        newVal.forEach(item=>{
+            var name = item[this.props.label];
+            var id = item[this.props.value];
+
+            this.optionMap[id] = name;            
+        });
+      }
+    },
+    filterText(val) {
+      this.$refs.selectTree.filter(val);
+    }
+  }
+};
+</script>
+<style>
+.el-scrollbar .el-scrollbar__view .el-select-dropdown__item {
+  height: auto;
+  max-height: 274px;
+  padding: 0;
+  overflow: hidden;
+  overflow-y: auto;
+}
+.el-select-dropdown__item.selected {
+  font-weight: normal;
+}
+ul li >>> .el-tree .el-tree-node__content {
+  height: auto;
+  padding: 0 20px;
+}
+.el-tree-node__label {
+  font-weight: normal;
+}
+.el-tree >>> .is-current .el-tree-node__label {
+  color: #409eff;
+  font-weight: 700;
+}
+.el-tree >>> .is-current .el-tree-node__children .el-tree-node__label {
+  color: #606266;
+  font-weight: normal;
+}
+.selectInput {
+  padding: 0 5px;
+  box-sizing: border-box;
+}
+</style>

+ 52 - 0
src/routers/modules/base.js

@@ -77,6 +77,58 @@ var routers = [
                 title: '会员详情'
         }
 },
+{
+        //会员审核
+        path: '/base/memberCheck/list',
+        name: 'BaseMemberCheckList',
+        // route level code-splitting
+        // this generates a separate chunk (about.[hash].js) for this route
+        // which is lazy-loaded when the route is visited.
+        component: () => import('@/views/base/memberCheck-list.vue'),
+        meta: {
+                roles: ["admin"],
+                title: '会员审核'
+        }
+},
+{
+        //已删除会员管理
+        path: '/base/memberInfoDel/list',
+        name: 'BaseMemberInfoDelList',
+        // route level code-splitting
+        // this generates a separate chunk (about.[hash].js) for this route
+        // which is lazy-loaded when the route is visited.
+        component: () => import('@/views/base/memberInfoDel-list.vue'),
+        meta: {
+                roles: ["admin"],
+                title: '已删除会员管理'
+        }
+},
+{
+        //已删除会员详情
+        path: '/base/memberInfoDel/view',
+        name: 'BaseMemberInfoDelView',
+        // route level code-splitting
+        // this generates a separate chunk (about.[hash].js) for this route
+        // which is lazy-loaded when the route is visited.
+        component: () => import('@/views/base/memberInfoDel-view.vue'),
+        meta: {
+                roles: ["admin"],
+                title: '已删除会员详情'
+        }
+},
+{
+        //移动端广告栏管理
+        path: '/base/mobileBannerInfo/list',
+        name: 'BaseMobileBannerInfoList',
+        // route level code-splitting
+        // this generates a separate chunk (about.[hash].js) for this route
+        // which is lazy-loaded when the route is visited.
+        component: () => import('@/views/base/mobileBannerInfo-list.vue'),
+        meta: {
+                roles: ["admin"],
+                title: '移动端广告栏管理'
+        }
+},
 ]
 
 export default routers;

+ 504 - 0
src/views/base/memberCheck-list.vue

@@ -0,0 +1,504 @@
+<template>
+  <div style="padding-left: 5px">
+    <el-breadcrumb separator=">">
+      <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
+      <el-breadcrumb-item>
+        <a href="#">基础信息管理</a>
+      </el-breadcrumb-item>
+      <el-breadcrumb-item>
+        <a href="/memberInfo">会员管理</a>
+      </el-breadcrumb-item>
+    </el-breadcrumb>
+    <el-divider></el-divider>
+    <el-form
+      ref="queryForm"
+      :model="queryModel"
+      inline
+      class="demo-form-inline"
+    >
+      <el-form-item label="真实姓名" prop="realName">
+        <el-input type="text" size="mini" v-model="queryModel.realName"></el-input>
+      </el-form-item>
+                  <el-form-item label="手机号码" prop="phone">
+        <el-input type="text" size="mini" v-model="queryModel.phone"></el-input>
+      </el-form-item>
+            <el-form-item label="身份证号" prop="idCard">
+        <el-input type="text" size="mini" v-model="queryModel.idCard"></el-input>
+      </el-form-item>
+      <el-form-item label="所属工会" prop="orgId">
+            <el-multi-tree-select
+              style="width:250px;"
+              size="mini"
+              :props="props"
+              :options="orgResult"
+              v-model="queryModel.orgIdArr"> 
+            </el-multi-tree-select>
+      </el-form-item>
+      <el-form-item>
+        <el-button
+          type="primary"
+          size="mini"
+          icon="ios-search"
+          @click="changePage(1)"
+          :loading="loading"
+          >查询</el-button
+        >&nbsp;
+        <el-button
+          type="info"
+          size="mini"
+          style="margin-left: 8px"
+          @click="handleReset('queryForm')"
+          >重置</el-button
+        >&nbsp;
+      </el-form-item>
+    </el-form>
+    <el-divider></el-divider>
+    <el-row class="button-group">
+      <el-button
+        type="primary"
+        size="small"
+        plain
+        icon="el-icon-circle-plus"
+        @click="handleAdd"
+        >批量通过</el-button
+      >
+      <el-button
+        type="primary"
+        size="small"
+        plain
+        icon="el-icon-remove"
+        :disabled="multipleSelection.length == 0"
+        @click="handleBatchDelete"
+        >删除选中项</el-button
+      >
+    </el-row>
+    <el-table
+      ref="formTable"
+      :data="tableData"
+      v-loading="loading"
+      stripe
+      :height="tableHeight"
+      @sort-change="sortChange"
+      @selection-change="handleSelectionChange"
+    >
+        <el-table-column type="selection" width="55"></el-table-column>
+        <el-table-column
+            prop="faceImage"
+            label="头像"
+            fixed="left"
+        >
+            <template slot-scope="{ row }">
+            <a :href="row.faceImage" target="_blank">
+                <el-avatar
+                :size="48"
+                shape="circle"
+                :src="
+                    row.faceImage +
+                    '?x-oss-process=image/resize,m_fill,w_64,h_64'
+                "
+                :key="row.id"
+                ></el-avatar>
+            </a>
+            </template>
+        </el-table-column>
+        <el-table-column
+            prop="realName"
+            label="真实姓名"
+            width="100"
+            fixed="left"
+        ></el-table-column>
+        <el-table-column
+            prop="phone"
+            label="手机号码"
+            width="200"
+        ></el-table-column>
+        <el-table-column
+            prop="idCard"
+            label="身份证号"
+            width="300"
+        ></el-table-column>
+        <el-table-column
+            prop="orgName"
+            label="所属工会"
+            width="250"
+        ></el-table-column>
+        <el-table-column prop="status"  label="审核状态">
+            <template slot-scope="{ row }">
+                <span v-if="row.status=='0'" style="color:red">未审核</span>
+                <span v-else-if="row.status=='1'" style="color:green">已审核</span>
+                <span v-else-if="row.status=='2'">审核不通过</span>
+            </template>
+        </el-table-column>
+        <el-table-column label="操作" width="300" fixed="right">
+            <template slot-scope="{ row }">
+            <el-row>
+                <el-col>
+                <el-link
+                    type="primary"
+                    :underline="false"
+                    @click="handleView(row)"
+                    >查看详情</el-link
+                >-
+                <el-link
+                    type="success"
+                    :underline="false"
+                    @click="handleCheck(row,true)"
+                    >审核通过</el-link
+                >-
+                <el-link
+                    type="info"
+                    :underline="false"
+                    @click="handleCheck(row,false)"
+                    >审核不通过</el-link
+                >-
+                <el-link
+                    type="danger"
+                    :underline="false"
+                    @click="handleDelete(row)"
+                    >删除</el-link>
+                </el-col>
+            </el-row>
+            </template>
+        </el-table-column>
+    </el-table>
+    <el-pagination
+      :current-page.sync="pageIndex"
+      :total="totalElements"
+      :page-sizes="pageSizeList"
+      @current-change="changePage"
+      @size-change="pageSizeChange"
+      layout="total, sizes, prev, pager, next, jumper"
+    ></el-pagination>
+    <memberInfo-detail
+      v-if="showModal"
+      :businessKey="businessKey"
+      :title="modalTitle"
+      @close="onDetailModalClose"
+    ></memberInfo-detail>
+    <memberInfo-view
+      v-if="showModal2"
+      :businessKey="businessKey"
+      :title="modalTitle2"
+      @close="onDetailModalClose2"
+    ></memberInfo-view>
+  </div>
+</template>
+<script>
+
+import memberInfoDetail from "./memberInfo-detail";
+import memberInfoApi from "@/api/base/memberInfo";
+import memberInfoView from './memberInfo-view.vue';
+import orgInfoApi from "@/api/base/orgInfo";
+import MultiSelectTree from "@/components/MultiSelectTree";
+
+export default {
+  name: "BaseNewsTypeList",
+  data() {
+    var self = this;
+    return {
+      queryModel: {
+        realName: "",
+        phone:"",
+        idCard:"",
+        orgIdArr:[],
+        statusArr:[],
+      },
+      formModel:{
+        id:"",
+        status:"",
+      },
+      loading: false,
+      tableData: [],
+      treeData: [],
+      pageIndex: 1,
+      pageSize: 10,
+      totalPages: 0,
+      totalElements: 0,
+      field: "",
+      direction: "",
+      pageSizeList: [10, 20, 30],
+      multipleSelection: [],
+      showModal: false,
+      showModal2: false,
+      modalTitle: "",
+      modalTitle2: "",
+      businessKey: "",
+      tableHeight: 300,
+      showDeviceModal: false,
+      orgResult: [],
+      props: {
+        // 配置项(必选)
+        value: "id",
+        label: "name",
+        children: "children",
+      },
+      batchImportVisible: false,
+      batchImportFileList: [],
+      xlsLoading: false,
+      sceneData: [],
+      typeData: [],
+      deviceRelationTitle: "",
+      showIconModal: false,
+      iconModalTitle: "",
+      statusList:[
+        {
+          "value":"0",
+          "name":"未审核"
+        },
+        {
+          "value":"1",
+          "name":"已审核"
+        },
+        {
+          "value":"2",
+          "name":"审核不通过"
+        },
+      ],
+    };
+  },
+  created() {
+    var self = this;
+
+    orgInfoApi.treeList().then(function (response) {
+      var jsonData = response.data;
+      if (jsonData.result) {
+        if (jsonData.data != null && jsonData.data != "") {
+          self.orgResult = jsonData.data;
+        }
+      }
+    });
+
+    self.changePage(1);
+  },
+  methods: {
+    changePage(pageIndex) {
+      var self = this;
+
+      self.loading = true;
+
+      self.pageIndex = pageIndex;
+      var formData = new FormData();
+
+      formData.append("pageIndex", self.pageIndex);
+      formData.append("pageSize", self.pageSize);
+
+      formData.append("realName", self.queryModel.realName);
+      formData.append("phone", self.queryModel.phone);
+      formData.append("idCard", self.queryModel.idCard);
+      formData.append("orgIdArr", self.queryModel.orgIdArr);
+
+      memberInfoApi
+        .checkPageList(formData)
+        .then(function (response) {
+          self.loading = false;
+
+          var jsonData = response.data.data;
+
+          self.tableData = jsonData.data;
+          self.totalPages = jsonData.totalPages;
+          self.totalElements = jsonData.recordsTotal;
+          //45为分页栏的高度
+          //页面高度-列表上面的高度-分页栏高度
+          self.tableHeight =
+            window.innerHeight - self.$refs.formTable.$el.offsetTop - 100;
+        })
+        .catch((error) => {
+          self.loading = false;
+          // self.$message.error(error + "");
+        });
+    },
+    pageSizeChange(pageSize) {
+      this.pageSize = pageSize;
+    },
+    sortChange(data) {
+      this.field = data.column.field;
+      this.direction = data.order == "ascending" ? "asc" : "desc";
+
+      this.changePage(this.pageIndex);
+    },
+    handleSelectionChange(val) {
+      this.multipleSelection = val;
+    },
+    handleReset(name) {
+      this.$refs[name].resetFields();
+    },
+    handleAdd() {
+      this.modalTitle = "新增";
+      this.businessKey = "";
+      this.showModal = true;
+    },
+    handleEdit(record) {
+      this.modalTitle = "编辑";
+      this.businessKey = record.id;
+      this.showModal = true;
+    },
+    // handleView(record) {
+    //   this.modalTitle2 = "会员详情";
+    //   this.businessKey = record.id;
+    //   this.showModal2 = true;
+    // },
+    handleView(row){
+      var path = "/base/memberInfo/view";
+
+      this.$store.dispatch("tagsView/delView", {
+          name: "baseMemberInfoView",
+          path: path,
+          })
+          .then(({ visitedViews }) => {
+          this.$router.push({
+              path: path,
+              query: {
+                businessKey: row.id,
+              },
+          });
+      });
+    },
+    handleDelete(record) {
+      var self = this;
+
+      self
+        .$confirm("是否确认删除?", "提示", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning",
+        })
+        .then(() => {
+          memberInfoApi.remove(record.id).then(function (response) {
+            var jsonData = response.data;
+
+            if (jsonData.result) {
+              // var index = self.tableData.indexOf(record);
+              // self.tableData.splice(index, 1);
+              self.changePage(self.pageIndex);
+
+              self.$message({
+                type: "success",
+                message: "删除成功!",
+              });
+            }
+          });
+        });
+    },
+    handleBatchDelete() {
+      var self = this;
+
+      var idList = this.multipleSelection.map((record) => {
+        return record.id;
+      });
+
+      this.$confirm("是否确认删除选中项?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      }).then(() => {
+        memberInfoApi.batchRemove(idList).then(function (response) {
+          var jsonData = response.data;
+
+          if (jsonData.result) {
+            self.changePage(self.pageIndex);
+
+            self.$message({
+              type: "success",
+              message: "删除成功!",
+            });
+          }
+        });
+      });
+    },
+    handleCheck(record,checked){
+        var self = this;
+
+        var checkText = "";
+
+        if(checked){
+            checkText="审核通过?";
+        }
+        else{
+            checkText="审核不通过?";
+        }
+
+        self
+        .$confirm(checkText, "提示", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning",
+        })
+        .then(() => {
+            (function () {
+
+                self.formModel.id = record.id
+
+                if(checked){
+                    self.formModel.status ="1";
+                }
+                else{
+                    self.formModel.status="2";
+                }
+
+                return memberInfoApi.checkMemberInfo(self.formModel);
+                
+            })().then(function (response) {
+                var jsonData = response.data;
+
+                if (jsonData.result) {
+                    self.$message({
+                        message: "审核成功!",
+                        type: "success",
+                    });
+
+                    self.changePage(self.pageIndex);
+
+                } else {
+                self.$message({
+                    message: jsonData.message + "",
+                    type: "warning",
+                });
+                }
+            });
+        })
+    },
+    onDetailModalClose(refreshed) {
+      //保存成功后回调
+      this.showModal = false;
+
+      if (refreshed) {
+        this.changePage(this.pageIndex);
+      }
+    },
+    onDetailModalClose2(refreshed) {
+      //保存成功后回调
+      this.showModal2 = false;
+
+      if (refreshed) {
+        this.changePage(this.pageIndex);
+      }
+    },
+  },
+  mounted: function () {},
+  components: {
+    "memberInfo-detail": memberInfoDetail,
+    "memberInfo-view": memberInfoView,
+    "el-multi-tree-select": MultiSelectTree,
+  },
+};
+</script>
+<style lang="scss" scoped>
+.el-breadcrumb {
+  margin: 10px;
+  line-height: 20px;
+}
+
+.el-divider {
+  margin: 5px 0;
+}
+
+.demo-form-inline {
+  margin-left: 10px;
+  text-align: left;
+}
+
+.button-group {
+  margin-left: 10px;
+  text-align: left;
+}
+</style>

+ 306 - 13
src/views/base/memberInfo-list.vue

@@ -9,16 +9,167 @@
         <a href="/memberInfo">会员管理</a>
       </el-breadcrumb-item>
     </el-breadcrumb>
-    <el-divider></el-divider>
     <el-form
       ref="queryForm"
       :model="queryModel"
       inline
       class="demo-form-inline"
+      :label-width="'100px'"
     >
-      <el-form-item label="真实姓名" prop="realName">
-        <el-input type="text" size="mini" v-model="queryModel.realName"></el-input>
-      </el-form-item>
+      <el-collapse accordion>
+        <el-collapse-item>
+          <template slot="title">
+            <div style="line-height:10px;margin-top:10px">
+              <el-form-item label="真实姓名" prop="realName">
+                <el-input type="text" size="mini" v-model="queryModel.realName" style="width:250px;"></el-input>
+              </el-form-item>
+              <el-form-item label="身份证号" prop="idCard">
+                <el-input type="text" size="mini" v-model="queryModel.idCard" style="width:250px;"></el-input>
+              </el-form-item>
+              <el-form-item label="所属工会" prop="orgId">
+                    <el-multi-tree-select
+                      style="width:250px;"
+                      size="mini"
+                      :props="props"
+                      :options="orgResult"
+                      v-model="queryModel.orgIdArr"> 
+                    </el-multi-tree-select>
+              </el-form-item>
+            </div>
+          </template>
+          <div>      
+            <el-form-item label="审核状态" prop="status">
+              <el-select v-model="queryModel.statusArr" multiple placeholder="请选择" size="mini" clearable style="width:250px;">
+                <el-option
+                  v-for="item in statusList"
+                  :key="item.value"
+                  :label="item.name"
+                  :value="item.value">
+                </el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="性别" prop="gender">
+              <el-select v-model="queryModel.gender" placeholder="请选择" size="mini" clearable style="width:250px;">
+                <el-option
+                  v-for="item in genderList"
+                  :key="item.value"
+                  :label="item.name"
+                  :value="item.value">
+                </el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="户口所在地" prop="registeredResidenceArr">
+                <el-cascader
+                :props="props1"
+                v-model="queryModel.registeredResidenceArr"
+                :options="cityList"
+                size="mini"
+                clearable 
+                style="width:250px;"
+                >
+                </el-cascader>
+            </el-form-item>
+          </div>
+          <div>      
+            <el-form-item label="学历" prop="education">
+              <el-select v-model="queryModel.education" multiple filterable placeholder="请选择" size="mini" clearable style="width:250px;">
+              <el-option
+                    v-for="result in eduList"
+                    :key="result.id"
+                    :label="result.name"
+                    :value="result.value"
+                  ></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="行业" prop="industry">
+              <el-select v-model="queryModel.industry" multiple filterable placeholder="请选择" size="mini" clearable style="width:250px;">
+              <el-option
+                    v-for="result in industryList"
+                    :key="result.id"
+                    :label="result.name"
+                    :value="result.value"
+                  ></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="月薪" prop="salaryRange">
+              <el-select v-model="queryModel.salaryRange" multiple filterable placeholder="请选择" size="mini" clearable style="width:250px;">
+              <el-option
+                    v-for="result in salaryRangeList"
+                    :key="result.id"
+                    :label="result.name"
+                    :value="result.value"
+                  ></el-option>
+              </el-select>
+            </el-form-item>
+          </div>
+          <div>      
+            <el-form-item label="住房" prop="housingSituation">
+              <el-select v-model="queryModel.housingSituation" multiple filterable placeholder="请选择" size="mini" clearable style="width:250px;">
+              <el-option
+                    v-for="result in housingSituationList"
+                    :key="result.id"
+                    :label="result.name"
+                    :value="result.value"
+                  ></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="婚姻" prop="maritalStatus">
+              <el-select v-model="queryModel.maritalStatus" multiple filterable placeholder="请选择" size="mini" clearable style="width:250px;">
+              <el-option
+                    v-for="result in maritalStatusList"
+                    :key="result.id"
+                    :label="result.name"
+                    :value="result.value"
+                  ></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="子女" prop="childStatus">
+              <el-select v-model="queryModel.childStatus" multiple filterable placeholder="请选择" size="mini" clearable style="width:250px;">
+              <el-option
+                    v-for="result in childStatusList"
+                    :key="result.id"
+                    :label="result.name"
+                    :value="result.value"
+                  ></el-option>
+              </el-select>
+            </el-form-item>
+          </div>
+                    <div>      
+            <el-form-item label="出生地" prop="birthplaceArr">
+              <el-cascader
+              :props="props1"
+              v-model="queryModel.birthplaceArr"
+              :options="cityList"
+              size="mini"
+              clearable 
+              style="width:250px;"
+              >
+              </el-cascader>
+            </el-form-item>
+            <el-form-item label="工作地" prop="workplace">
+                <el-cascader
+                :props="props1"
+                v-model="queryModel.workplace"
+                :options="cityList"
+                size="mini"
+                clearable 
+                style="width:250px;"
+                >
+                </el-cascader>
+            </el-form-item>
+            <el-form-item label="兴趣爱好" prop="hobbyArr">
+              <el-select v-model="queryModel.hobbyArr" multiple placeholder="请选择" size="mini" clearable style="width:250px;">
+                <el-option
+                  v-for="item in hobbyInfoList"
+                  :key="item.id"
+                  :label="item.name"
+                  :value="item.id">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </div>
+        </el-collapse-item>
+      </el-collapse>
       <el-form-item>
         <el-button
           type="primary"
@@ -159,15 +310,16 @@
                 <el-link
                     type="primary"
                     :underline="false"
-                    @click="handleView(row)"
+                    @click="handleView(row,'view')"
                     >查看详情</el-link
                 >-
                 <el-link
+                  v-if="row.status !='0'"
                     type="primary"
                     :underline="false"
-                    @click="handleEdit(row)"
-                    >编辑</el-link
-                >-
+                    @click="handleView(row,'edit')"
+                    >编辑-
+                    </el-link>
                 <el-link
                     type="danger"
                     :underline="false"
@@ -205,14 +357,22 @@
 import memberInfoDetail from "./memberInfo-detail";
 import memberInfoApi from "@/api/base/memberInfo";
 import memberInfoView from './memberInfo-view.vue';
+import orgInfoApi from "@/api/base/orgInfo";
+import MultiSelectTree from "@/components/MultiSelectTree";
+import dataDictionaryApi from "@/api/sys/dataDictionary";
+import cityApi from "@/api/base/city";
+import hobbyInfoApi from "@/api/base/hobbyInfo";
 
 export default {
-  name: "BaseNewsTypeList",
+  name: "BaseMemberInfoList",
   data() {
     var self = this;
     return {
       queryModel: {
-        name: "",
+        realName: "",
+        idCard:"",
+        orgIdArr:[],
+        statusArr:[],
       },
       loading: false,
       tableData: [],
@@ -239,6 +399,9 @@ export default {
         label: "name",
         children: "children",
       },
+      props1:{
+        multiple: true
+      },
       batchImportVisible: false,
       batchImportFileList: [],
       xlsLoading: false,
@@ -247,11 +410,131 @@ export default {
       deviceRelationTitle: "",
       showIconModal: false,
       iconModalTitle: "",
+      statusList:[
+        {
+          "value":"0",
+          "name":"未审核"
+        },
+        {
+          "value":"1",
+          "name":"已审核"
+        },
+        {
+          "value":"2",
+          "name":"审核不通过"
+        },
+      ],
+      genderList:[
+        {
+          "value":"0",
+          "name":"男"
+        },
+        {
+          "value":"1",
+          "name":"女"
+        }
+      ],
+      eduList:[],
+      industryList:[],
+      salaryRangeList:[],
+      housingSituationList:[],
+      maritalStatusList:[],
+      childStatusList:[],
+      taAgeRangeList:[],
+      hobbyInfoList:[],
+      cityList:[],
     };
   },
   created() {
+    var self = this;
+
+    orgInfoApi.treeList().then(function (response) {
+      var jsonData = response.data;
+      if (jsonData.result) {
+        if (jsonData.data != null && jsonData.data != "") {
+          self.orgResult = jsonData.data;
+        }
+      }
+    });
+
+    dataDictionaryApi
+      .findByCatalogName({
+        catalogName: "学历",
+      })
+      .then((response) => {
+        var jsonData = response.data;
+        this.eduList = jsonData.data;
+      });
+
+    dataDictionaryApi
+      .findByCatalogName({
+        catalogName: "行业",
+      })
+      .then((response) => {
+        var jsonData = response.data;
+        this.industryList = jsonData.data;
+      });
+
+    dataDictionaryApi
+      .findByCatalogName({
+        catalogName: "月薪",
+      })
+      .then((response) => {
+        var jsonData = response.data;
+        this.salaryRangeList = jsonData.data;
+      });
+
+    dataDictionaryApi
+      .findByCatalogName({
+        catalogName: "住房情况",
+      })
+      .then((response) => {
+        var jsonData = response.data;
+        this.housingSituationList = jsonData.data;
+      });
+
+    dataDictionaryApi
+      .findByCatalogName({
+        catalogName: "婚姻情况",
+      })
+      .then((response) => {
+        var jsonData = response.data;
+        this.maritalStatusList = jsonData.data;
+      });
+
+    dataDictionaryApi
+      .findByCatalogName({
+        catalogName: "子女情况",
+      })
+      .then((response) => {
+        var jsonData = response.data;
+        this.childStatusList = jsonData.data;
+      });
+
+    dataDictionaryApi
+      .findByCatalogName({
+        catalogName: "年龄范围",
+      })
+      .then((response) => {
+        var jsonData = response.data;
+        this.taAgeRangeList = jsonData.data;
+      });
 
-    this.changePage(1);
+    cityApi.treeList().then((response) => {
+        var jsonData = response.data;
+        this.cityList = jsonData.data;
+    });
+
+    var formData = new FormData();
+
+    formData.append("memberInfoId", "");
+
+    hobbyInfoApi.list(formData).then((response) => {
+        var jsonData = response.data;
+        this.hobbyInfoList = jsonData.data;
+    });
+
+    self.changePage(1);
   },
   methods: {
     changePage(pageIndex) {
@@ -265,7 +548,10 @@ export default {
       formData.append("pageIndex", self.pageIndex);
       formData.append("pageSize", self.pageSize);
 
-      formData.append("name", self.queryModel.name);
+      formData.append("realName", self.queryModel.realName);
+      formData.append("idCard", self.queryModel.idCard);
+      formData.append("orgIdArr", self.queryModel.orgIdArr);
+      formData.append("statusArr", self.queryModel.statusArr);
 
       memberInfoApi
         .pageList(formData)
@@ -302,6 +588,9 @@ export default {
     handleReset(name) {
       this.$refs[name].resetFields();
     },
+    refreshList() {
+      this.changePage(this.pageIndex);
+    },
     handleAdd() {
       this.modalTitle = "新增";
       this.businessKey = "";
@@ -317,7 +606,9 @@ export default {
     //   this.businessKey = record.id;
     //   this.showModal2 = true;
     // },
-    handleView(row){
+    handleView(row,type){
+      window["listPage"] = this;
+
       var path = "/base/memberInfo/view";
 
       this.$store.dispatch("tagsView/delView", {
@@ -329,6 +620,7 @@ export default {
               path: path,
               query: {
                 businessKey: row.id,
+                type:type
               },
           });
       });
@@ -406,6 +698,7 @@ export default {
   components: {
     "memberInfo-detail": memberInfoDetail,
     "memberInfo-view": memberInfoView,
+    "el-multi-tree-select": MultiSelectTree,
   },
 };
 </script>

+ 513 - 70
src/views/base/memberInfo-view.vue

@@ -7,7 +7,7 @@
         <a href="#">基础信息管理</a>
       </el-breadcrumb-item>
       <el-breadcrumb-item>
-        <a href="/memberInfo">会员管理</a>
+        <a href="/memberInfo">会员详情</a>
       </el-breadcrumb-item>
     </el-breadcrumb>
     <el-divider></el-divider>
@@ -27,12 +27,34 @@
         <el-form ref="form" :model="formModel" inline :label-width="'100px'">
             <el-container>
                 <el-aside width="1000px">
+                <template v-if="formModel.status =='0'">
+                    <span class="span-realName" v-if="formModel.memberUpdateLog.realName" style="color:red">
+                        <el-tooltip class="item" effect="dark" content="文字红色为会员修改过的资料" placement="top">
+                            <span>{{formModel.realName}}</span>
+                        </el-tooltip>
+                    </span>
+                    <span class="span-realName" v-else>{{formModel.realName}}</span> 
+                </template>
+                <template v-else>
                     <span class="span-realName">{{formModel.realName}}</span> 
+                </template>
                     <el-row>
                         <el-col :span="8">
                             <div class="grid-content bg-purple">
                                 <el-form-item label="联系方式:">
-                                    <span class="grid-content-span">{{formModel.phone}}</span>
+                                    <template v-if="formModel.status =='0'">
+                                        <span class="grid-content-span" v-if="formModel.memberUpdateLog.phone" style="color:red">
+                                            <el-tooltip class="item" effect="dark" content="文字红色为会员修改过的资料" placement="top">
+                                                <span>{{formModel.phone}}</span>
+                                            </el-tooltip>
+                                        </span>
+                                        <span class="grid-content-span" v-else>
+                                            {{formModel.phone}}
+                                        </span>
+                                    </template>
+                                    <template v-else>
+                                        <span class="grid-content-span" >{{formModel.phone}}</span>
+                                    </template>
                                 </el-form-item>
                             </div>
                         </el-col>
@@ -57,22 +79,58 @@
                         <el-col :span="8">
                             <div class="grid-content bg-purple">
                                 <el-form-item label="身份证号:">
-                                    <span class="grid-content-span">{{formModel.idCard}}</span>
+                                    <template v-if="formModel.status =='0'">
+                                        <span class="grid-content-span" v-if="formModel.memberUpdateLog.idCard" style="color:red">
+                                            <el-tooltip class="item" effect="dark" content="文字红色为会员修改过的资料" placement="top">
+                                                <span>{{formModel.idCard}}</span>
+                                            </el-tooltip>
+                                        </span>
+                                        <span class="grid-content-span" v-else>
+                                            {{formModel.idCard}}
+                                        </span>
+                                    </template>
+                                    <template v-else>
+                                        <span class="grid-content-span" >{{formModel.idCard}}</span>
+                                    </template>
                                 </el-form-item>
                             </div>
                         </el-col>
                         <el-col :span="8">
                             <div class="grid-content bg-purple">
                                 <el-form-item label="性别:">
-                                    <span class="grid-content-span" v-if="formModel.gender">女</span>
-                                    <span class="grid-content-span" v-else-if="!formModel.gender">男</span>
+                                    <template v-if="formModel.status =='0'">
+                                         <span class="grid-content-span" v-if="formModel.memberUpdateLog.gender" style="color:red">
+                                            <el-tooltip class="item" effect="dark" content="文字红色为会员修改过的资料" placement="top">
+                                                <span class="grid-content-span" v-if="formModel.gender">女</span>
+                                                <span class="grid-content-span" v-else-if="!formModel.gender">男</span>
+                                            </el-tooltip>
+                                        </span>
+                                        <span class="grid-content-span" v-else>
+                                            <span class="grid-content-span" v-if="formModel.gender">女</span>
+                                            <span class="grid-content-span" v-else-if="!formModel.gender">男</span>
+                                        </span> 
+                                    </template>
+                                    <template v-else>
+                                        <span class="grid-content-span" v-if="formModel.gender">女</span>
+                                        <span class="grid-content-span" v-else-if="!formModel.gender">男</span>
+                                    </template>
                                 </el-form-item>
                             </div>
                         </el-col>
                         <el-col :span="8">
                             <div class="grid-content bg-purple">
                                 <el-form-item label="行业:">
-                                    <span class="grid-content-span">{{formModel.industryN}}</span>
+                                    <template v-if="formModel.status =='0'">
+                                        <span class="grid-content-span" v-if="formModel.memberUpdateLog.industry" style="color:red">
+                                            {{formModel.industryN}}
+                                        </span>
+                                        <span class="grid-content-span" v-else>
+                                            {{formModel.industryN}}
+                                        </span>
+                                    </template>
+                                    <template v-else>
+                                        <span class="grid-content-span" >{{formModel.industryN}}</span>
+                                    </template>
                                 </el-form-item>
                             </div>
                         </el-col>
@@ -81,21 +139,41 @@
                         <el-col :span="8">
                             <div class="grid-content bg-purple">
                                 <el-form-item label="出生年月:">
-                                    <span class="grid-content-span">{{formModel.birthday}}</span>
+                                    <template v-if="formModel.status =='0'">
+                                        <span class="grid-content-span" v-if="formModel.memberUpdateLog.birthday" style="color:red">
+                                            {{formModel.birthday}}
+                                        </span>
+                                        <span class="grid-content-span" v-else>
+                                            {{formModel.birthday}}
+                                        </span>
+                                    </template>
+                                    <template v-else>
+                                        <span class="grid-content-span" >{{formModel.birthday}}</span>
+                                    </template>
                                 </el-form-item>
                             </div>
                         </el-col>
                         <el-col :span="8">
                             <div class="grid-content bg-purple">
                                 <el-form-item label="年龄:">
-                                    <span class="grid-content-span">28岁</span>
+                                    <span class="grid-content-span">{{formModel.age}}岁</span>
                                 </el-form-item>
                             </div>
                         </el-col>
                         <el-col :span="8">
                             <div class="grid-content bg-purple">
                                 <el-form-item label="岗位:">
-                                    <span class="grid-content-span">{{formModel.post}}</span>
+                                    <template v-if="formModel.status =='0'">
+                                        <span class="grid-content-span" v-if="formModel.memberUpdateLog.post" style="color:red">
+                                            {{formModel.post}}
+                                        </span>
+                                        <span class="grid-content-span" v-else>
+                                            {{formModel.post}}
+                                        </span>
+                                    </template>
+                                    <template v-else>
+                                        <span class="grid-content-span" >{{formModel.post}}</span>
+                                    </template>
                                 </el-form-item>
                             </div>
                         </el-col>
@@ -104,21 +182,51 @@
                         <el-col :span="8">
                             <div class="grid-content bg-purple">
                                 <el-form-item label="出生地:">
-                                    <span class="grid-content-span">{{formModel.birthplaceN}}</span>
+                                    <template v-if="formModel.status =='0'">
+                                        <span class="grid-content-span" v-if="formModel.memberUpdateLog.birthplace" style="color:red">
+                                            {{formModel.birthplaceN}}
+                                        </span>
+                                        <span class="grid-content-span" v-else>
+                                            {{formModel.birthplaceN}}
+                                        </span>
+                                    </template>
+                                    <template v-else>
+                                        <span class="grid-content-span" >{{formModel.birthplaceN}}</span>
+                                    </template>
                                 </el-form-item>
                             </div>
                         </el-col>
                         <el-col :span="8">
                             <div class="grid-content bg-purple">
                                 <el-form-item label="学历:">
-                                    <span class="grid-content-span">{{formModel.educationN}}</span>
+                                    <template v-if="formModel.status =='0'">
+                                        <span class="grid-content-span" v-if="formModel.memberUpdateLog.education" style="color:red">
+                                            {{formModel.educationN}}
+                                        </span>
+                                        <span class="grid-content-span" v-else>
+                                            {{formModel.educationN}}
+                                        </span>
+                                    </template>
+                                    <template v-else>
+                                        <span class="grid-content-span" >{{formModel.educationN}}</span>
+                                    </template>
                                 </el-form-item>
                             </div>
                         </el-col>
                         <el-col :span="8">
                             <div class="grid-content bg-purple">
                                 <el-form-item label="月薪:">
-                                    <span class="grid-content-span">{{formModel.salaryRangeN}}</span>
+                                    <template v-if="formModel.status =='0'">
+                                        <span class="grid-content-span" v-if="formModel.memberUpdateLog.salaryRange" style="color:red">
+                                            {{formModel.salaryRangeN}}
+                                        </span>
+                                        <span class="grid-content-span" v-else>
+                                            {{formModel.salaryRangeN}}
+                                        </span>
+                                    </template>
+                                    <template v-else>
+                                        <span class="grid-content-span" >{{formModel.salaryRangeN}}</span>
+                                    </template>
                                 </el-form-item>
                             </div>
                         </el-col>
@@ -127,21 +235,51 @@
                         <el-col :span="8">
                             <div class="grid-content bg-purple">
                                 <el-form-item label="户口所在地:">
-                                    <span class="grid-content-span">{{formModel.registeredResidenceN}}</span>
+                                    <template v-if="formModel.status =='0'">
+                                        <span class="grid-content-span" v-if="formModel.memberUpdateLog.registeredResidence" style="color:red">
+                                            {{formModel.registeredResidenceN}}
+                                        </span>
+                                        <span class="grid-content-span" v-else>
+                                            {{formModel.registeredResidenceN}}
+                                        </span>
+                                    </template>
+                                    <template v-else>
+                                        <span class="grid-content-span" >{{formModel.registeredResidenceN}}</span>
+                                    </template>
                                 </el-form-item>
                             </div>
                         </el-col>
                         <el-col :span="8">
                             <div class="grid-content bg-purple">
                                 <el-form-item label="身高:">
-                                    <span class="grid-content-span">{{formModel.height}}CM</span>
+                                    <template v-if="formModel.status =='0'">
+                                        <span class="grid-content-span" v-if="formModel.memberUpdateLog.height" style="color:red">
+                                            {{formModel.height}}CM
+                                        </span>
+                                        <span class="grid-content-span" v-else>
+                                            {{formModel.height}}CM
+                                        </span>
+                                    </template>
+                                    <template v-else>
+                                        <span class="grid-content-span" >{{formModel.height}}CM</span>
+                                    </template>
                                 </el-form-item>
                             </div>
                         </el-col>
                         <el-col :span="8">
                             <div class="grid-content bg-purple">
                                 <el-form-item label="工作单位:">
-                                    <span class="grid-content-span">{{formModel.workUnit}}</span>
+                                    <template v-if="formModel.status =='0'">
+                                        <span class="grid-content-span" v-if="formModel.memberUpdateLog.workUnit" style="color:red">
+                                            {{formModel.workUnit}}
+                                        </span>
+                                        <span class="grid-content-span" v-else>
+                                            {{formModel.workUnit}}
+                                        </span>
+                                    </template>
+                                    <template v-else>
+                                        <span class="grid-content-span" >{{formModel.workUnit}}</span>
+                                    </template>
                                 </el-form-item>
                             </div>
                         </el-col>
@@ -150,37 +288,87 @@
                         <el-col :span="8">
                             <div class="grid-content bg-purple">
                                 <el-form-item label="工作所在地:">
-                                    <span class="grid-content-span">{{formModel.workplaceN}}</span>
+                                    <template v-if="formModel.status =='0'">
+                                        <span class="grid-content-span" v-if="formModel.memberUpdateLog.workplace" style="color:red">
+                                            {{formModel.workplaceN}}
+                                        </span>
+                                        <span class="grid-content-span" v-else>
+                                            {{formModel.workplaceN}}
+                                        </span>
+                                    </template>
+                                    <template v-else>
+                                        <span class="grid-content-span" >{{formModel.workplaceN}}</span>
+                                    </template>
                                 </el-form-item>
                             </div>
                         </el-col>
                         <el-col :span="8">
                             <div class="grid-content bg-purple">
                                 <el-form-item label="体重:">
-                                    <span class="grid-content-span">{{formModel.weight}}kg</span>
+                                    <template v-if="formModel.status =='0'">
+                                        <span class="grid-content-span" v-if="formModel.memberUpdateLog.weight" style="color:red">
+                                            {{formModel.weight}}kg
+                                        </span>
+                                        <span class="grid-content-span" v-else>
+                                            {{formModel.weight}}kg
+                                        </span>
+                                    </template>
+                                    <template v-else>
+                                        <span class="grid-content-span" >{{formModel.weight}}kg</span>
+                                    </template>
                                 </el-form-item>
                             </div>
                         </el-col>
                         <el-col :span="8">
                             <div class="grid-content bg-purple">
                                 <el-form-item label="住房状况:">
-                                    <span class="grid-content-span">{{formModel.housingSituationN}}</span>
+                                    <template v-if="formModel.status =='0'">
+                                        <span class="grid-content-span" v-if="formModel.memberUpdateLog.housingSituation" style="color:red">
+                                            {{formModel.housingSituationN}}
+                                        </span>
+                                        <span class="grid-content-span" v-else>
+                                            {{formModel.housingSituationN}}
+                                        </span>
+                                    </template>
+                                    <template v-else>
+                                        <span class="grid-content-span" >{{formModel.housingSituationN}}</span>
+                                    </template>
                                 </el-form-item>
                             </div>
                         </el-col>
                     </el-row>
-                                        <el-row>
+                    <el-row>
                         <el-col :span="8">
                             <div class="grid-content bg-purple">
                                 <el-form-item label="婚姻状况:">
-                                    <span class="grid-content-span">{{formModel.maritalStatusN}}</span>
+                                    <template v-if="formModel.status =='0'">
+                                        <span class="grid-content-span" v-if="formModel.memberUpdateLog.maritalStatus" style="color:red">
+                                            {{formModel.maritalStatusN}}
+                                        </span>
+                                        <span class="grid-content-span" v-else>
+                                            {{formModel.maritalStatusN}}
+                                        </span>
+                                    </template>
+                                    <template v-else>
+                                        <span class="grid-content-span" >{{formModel.maritalStatusN}}</span>
+                                    </template>
                                 </el-form-item>
                             </div>
                         </el-col>
                         <el-col :span="8">
                             <div class="grid-content bg-purple">
                                 <el-form-item label="子女情况:">
-                                    <span class="grid-content-span">{{formModel.childStatusN}}</span>
+                                    <template v-if="formModel.status =='0'">
+                                        <span class="grid-content-span" v-if="formModel.memberUpdateLog.childStatus" style="color:red">
+                                            {{formModel.childStatusN}}
+                                        </span>
+                                        <span class="grid-content-span" v-else>
+                                            {{formModel.childStatusN}}
+                                        </span>
+                                    </template>
+                                    <template v-else>
+                                        <span class="grid-content-span" >{{formModel.childStatusN}}</span>
+                                    </template>
                                 </el-form-item>
                             </div>
                         </el-col>
@@ -195,13 +383,33 @@
                     </el-row>
                     <el-divider></el-divider>
                     <div class="hobby-div">
-                        <h3>兴趣爱好</h3>
+                        <template v-if="formModel.status =='0'">
+                            <h3 v-if="formModel.memberUpdateLog.hobby" style="color:red">
+                                <el-tooltip class="item" effect="dark" content="文字红色为会员修改过的资料" placement="top">
+                                    <span>兴趣爱好</span>
+                                </el-tooltip>
+                            </h3>
+                            <h3 v-else>兴趣爱好</h3>
+                        </template>
+                        <template v-else>
+                            <h3>兴趣爱好</h3>
+                        </template>
                         <el-tag type="danger" v-for="(item,i) in formModel.hobbyInfoList" :key="i">
                             {{item.name}}
                         </el-tag>
                     </div>
                     <el-divider></el-divider>
-                    <h3>自我评价</h3> 
+                    <template v-if="formModel.status =='0'">
+                        <h3 v-if="formModel.memberUpdateLog.selfEvaluation" style="color:red">
+                            <el-tooltip class="item" effect="dark" content="文字红色为会员修改过的资料" placement="top">
+                                <span>自我评价</span>
+                            </el-tooltip>
+                        </h3>
+                        <h3 v-else>自我评价</h3>
+                    </template>
+                    <template v-else>
+                        <h3>自我评价</h3>
+                    </template>
                     <p class="p-content">
                         {{formModel.selfEvaluation}}
                     </p>
@@ -213,21 +421,51 @@
                             <el-col :span="8">
                                 <div class="grid-content bg-purple">
                                     <el-form-item label="年龄范围:">
-                                        <span class="grid-content-span">{{formModel.taAgeRangeN}}</span>
+                                        <template v-if="formModel.status =='0'">
+                                            <span class="grid-content-span" v-if="formModel.memberUpdateLog.taAgeRange" style="color:red">
+                                                {{formModel.taAgeRangeN}}
+                                            </span>
+                                            <span class="grid-content-span" v-else>
+                                                {{formModel.taAgeRangeN}}
+                                            </span>
+                                        </template>
+                                        <template v-else>
+                                            <span class="grid-content-span" >{{formModel.taAgeRangeN}}</span>
+                                        </template>
                                     </el-form-item>
                                 </div>
                             </el-col>
                             <el-col :span="8">
                                 <div class="grid-content bg-purple">
                                     <el-form-item label="月薪:">
-                                        <span class="grid-content-span">{{formModel.taIncomeRangeN}}</span>
+                                        <template v-if="formModel.status =='0'">
+                                            <span class="grid-content-span" v-if="formModel.memberUpdateLog.taIncomeRange" style="color:red">
+                                                {{formModel.taIncomeRangeN}}
+                                            </span>
+                                            <span class="grid-content-span" v-else>
+                                                {{formModel.taIncomeRangeN}}
+                                            </span>
+                                        </template>
+                                        <template v-else>
+                                            <span class="grid-content-span" >{{formModel.taIncomeRangeN}}</span>
+                                        </template>
                                     </el-form-item>
                                 </div>
                             </el-col>
                             <el-col :span="8">
                                 <div class="grid-content bg-purple">
                                     <el-form-item label="学历:">
-                                        <span class="grid-content-span">{{formModel.taEduN}}</span>
+                                        <template v-if="formModel.status =='0'">
+                                            <span class="grid-content-span" v-if="formModel.memberUpdateLog.taEdu" style="color:red">
+                                                {{formModel.taEduN}}
+                                            </span>
+                                            <span class="grid-content-span" v-else>
+                                                {{formModel.taEduN}}
+                                            </span>
+                                        </template>
+                                        <template v-else>
+                                            <span class="grid-content-span" >{{formModel.taEduN}}</span>
+                                        </template>
                                     </el-form-item>
                                 </div>
                             </el-col>
@@ -236,21 +474,51 @@
                             <el-col :span="8">
                                 <div class="grid-content bg-purple">
                                     <el-form-item label="职业:">
-                                        <span class="grid-content-span">{{formModel.taOccupationN}}</span>
+                                        <template v-if="formModel.status =='0'">
+                                            <span class="grid-content-span" v-if="formModel.memberUpdateLog.taOccupation" style="color:red">
+                                                {{formModel.taOccupationN}}
+                                            </span>
+                                            <span class="grid-content-span" v-else>
+                                                {{formModel.taOccupationN}}
+                                            </span>
+                                        </template>
+                                        <template v-else>
+                                            <span class="grid-content-span" >{{formModel.taOccupationN}}</span>
+                                        </template>
                                     </el-form-item>
                                 </div>
                             </el-col>
                             <el-col :span="8">
                                 <div class="grid-content bg-purple">
                                     <el-form-item label="工作地区:">
-                                        <span class="grid-content-span">{{formModel.taWorkplaceN}}</span>
+                                        <template v-if="formModel.status =='0'">
+                                            <span class="grid-content-span" v-if="formModel.memberUpdateLog.taWorkplace" style="color:red">
+                                                {{formModel.taWorkplaceN}}
+                                            </span>
+                                            <span class="grid-content-span" v-else>
+                                                {{formModel.taWorkplaceN}}
+                                            </span>
+                                        </template>
+                                        <template v-else>
+                                            <span class="grid-content-span" >{{formModel.taWorkplaceN}}</span>
+                                        </template>
                                     </el-form-item>
                                 </div>
                             </el-col>
                             <el-col :span="8">
                                 <div class="grid-content bg-purple">
                                     <el-form-item label="其他要求:">
-                                        <span class="grid-content-span">{{formModel.taOther}}</span>
+                                        <template v-if="formModel.status =='0'">
+                                            <span class="grid-content-span" v-if="formModel.memberUpdateLog.taOther" style="color:red">
+                                                {{formModel.taOther}}
+                                            </span>
+                                            <span class="grid-content-span" v-else>
+                                                {{formModel.taOther}}
+                                            </span>
+                                        </template>
+                                        <template v-else>
+                                            <span class="grid-content-span" >{{formModel.taOther}}</span>
+                                        </template>
                                     </el-form-item>
                                 </div>
                             </el-col>
@@ -261,27 +529,51 @@
                 </el-aside>
             <el-main>
                 <div class="right-main">
-                    <el-image
+                    <!-- <el-image
                     style="width: 200px; height: 200px"
                     :src="formModel.faceImage"
                     fit="fit">
-                    </el-image>
+                    </el-image> -->
+                    <template v-if="formModel.status =='0'">
+                        <el-image
+                        style="width: 200px; height: 200px"
+                        :src="formModel.faceImage"
+                        fit="fit">
+                        </el-image>
+                        <div v-if="formModel.memberUpdateLog.faceImage" style="color:red">会员头像已修改</div>
+                    </template>
+                    <template v-else>
+                        <el-upload
+                            class="avatar-uploader"
+                            name="photoFile"
+                            :action="uploadUrl"
+                            :show-file-list="false"
+                            :headers="headers"
+                            :data="uploadData"
+                            :on-success="handleAvatarSuccess"
+                            :before-upload="beforeAvatarUpload"
+                        >
+                            <img v-if="fileUrl" :src="fileUrl" class="avatar" />
+                            <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+                        </el-upload>
+                    </template>
                 </div>
                 <div class="right-button-group">
                     <el-row class="right-button-group-row">
                         <el-col :span="12">
-                            <el-button type="primary" plain @click="handleOpen">编辑资料</el-button>
+                            <el-button type="primary" plain @click="handleOpen" v-if="formModel.status =='0'" disabled>编辑资料</el-button>
+                            <el-button type="primary" plain @click="handleOpen" v-else>编辑资料</el-button>
                         </el-col>
                         <el-col :span="12">
-                            <el-button type="warning" plain>删除档案</el-button>
+                            <el-button type="warning" plain @click="handleDel">删除档案</el-button>
                         </el-col>
                     </el-row>
                      <el-row v-if="formModel.status=='0'">
                          <el-col :span="12">
-                            <el-button type="danger" plain style="width:100px">不通过</el-button>
+                            <el-button type="danger" plain style="width:100px" @click="handleCheck(false)">不通过</el-button>
                         </el-col>
                         <el-col :span="12">
-                            <el-button type="success" plain>审核通过</el-button>
+                            <el-button type="success" plain @click="handleCheck(true)">审核通过</el-button>
                         </el-col>
                      </el-row>
                 </div>
@@ -318,7 +610,7 @@
             </el-radio-group>
         </el-form-item>
         <el-form-item label="年龄" :label-width="formLabelWidth">
-            <el-input v-model="form.name" autocomplete="off"></el-input>
+            <el-input v-model="formModel.age" disabled></el-input>
         </el-form-item>
         <el-form-item label="身高" :label-width="formLabelWidth">
             <el-input v-model="form.height" autocomplete="off">
@@ -486,7 +778,7 @@
         
         <div class="demo-drawer__footer">
         <el-button @click="cancelForm">取 消</el-button>
-        <el-button type="primary" @click="$refs.drawer.closeDrawer()" :loading="loading">{{ loading ? '提交中 ...' : '确 定' }}</el-button>
+        <el-button type="primary" @click="handleSubmit" :loading="loading">{{ loading ? '提交中 ...' : '确 定' }}</el-button>
         </div>
     </div>
     </el-drawer>
@@ -496,10 +788,12 @@
   <!-- </el-dialog> -->
 </template>
 <script>
+import Constant from "@/constant";
 import memberInfoApi from "@/api/base/memberInfo";
 import dataDictionaryApi from "@/api/sys/dataDictionary";
 import hobbyInfoApi from "@/api/base/hobbyInfo";
 import cityApi from "@/api/base/city";
+import { getToken } from "@/utils/auth"; // get token from cookie
 
 export default {
   name:"baseMemberInfoView",
@@ -524,6 +818,7 @@ export default {
         resource: '',
         desc: ''
       },
+      type:"",
       eduList:[],
       industryList:[],
       salaryRangeList:[],
@@ -533,12 +828,18 @@ export default {
       taAgeRangeList:[],
       hobbyInfoList:[],
       cityList:[],
+      //上传地址
+      uploadUrl: Constant.serverUrl + "/uploadPicture",
+      uploadData: {
+        subFolder: "memberInfo",
+      },
+      fileUrl: "",
+      headers: {
+        Authorization: getToken(),
+      },
     };
   },
   methods: {
-    closeDialog() {
-      this.$emit("close", false);
-    },
     handleOpen(){
         var self = this;
 
@@ -590,6 +891,171 @@ export default {
         item.isMemberSelect= !item.isMemberSelect;
         this.$forceUpdate()
     },
+    initData(){
+        var self = this;
+
+        self.loading = true;
+
+        self.businessKey = this.$route.query.businessKey;
+
+        self.type = this.$route.query.type;
+
+        (function () {
+            return memberInfoApi.view(self.businessKey);
+        })()
+        .then((response) => {
+            var jsonData = response.data;
+            self.loading = false;
+
+            if (jsonData.result) {
+                self.formModel = jsonData.data;
+                let faceImage = self.formModel.faceImage;
+                if (faceImage != null) {
+                    self.fileUrl = faceImage + "?x-oss-process=image/resize,m_lfit,h_200,w_200";
+                }
+                if(self.type=='edit'){
+                    self.handleOpen();
+                }
+            } else {
+            self.$message.error(jsonData.message + "");
+            }
+        })
+        .catch((error) => {
+            self.$message.error(error + "");
+        });
+    },
+    handleAvatarSuccess(res, file) {
+      var self = this;
+      self.fileUrl =
+        res.data + "?x-oss-process=image/resize,m_lfit,h_200,w_200";
+
+        (function () {
+            var id = self.formModel.id;
+
+            self.formModel.faceImage = res.data
+
+            return memberInfoApi.updateFaceImg(self.formModel);
+            
+          })().then(function (response) {
+            var jsonData = response.data;
+
+            if (jsonData.result) {
+              self.$message({
+                message: "修改照片成功!",
+                type: "success",
+              });
+            } else {
+              self.$message({
+                message: jsonData.message + "",
+                type: "warning",
+              });
+            }
+          });
+    },
+    handleCheck(checked){
+        var self = this;
+
+        var checkText="";
+
+        if(checked){
+            checkText="审核通过?";
+        }
+        else{
+            checkText="审核不通过?";
+        }
+
+        self
+        .$confirm(checkText, "提示", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning",
+        })
+        .then(() => {
+            (function () {
+                var id = self.formModel.id;
+
+                if(checked){
+                    self.formModel.status ="1";
+                }
+                else{
+                    self.formModel.status="2";
+                }
+
+                return memberInfoApi.updateFaceImg(self.formModel);
+                
+            })().then(function (response) {
+                var jsonData = response.data;
+
+                if (jsonData.result) {
+                self.$message({
+                    message: "保存成功!",
+                    type: "success",
+                });
+
+                    self.$refs.drawer.closeDrawer();
+                    self.initData();
+                } else {
+                self.$message({
+                    message: jsonData.message + "",
+                    type: "warning",
+                });
+                }
+            });
+        })
+    },
+    handleDel(){
+      var self = this;
+
+      var id = self.formModel.id;
+
+      self
+        .$confirm("是否确认删除?", "提示", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning",
+        })
+        .then(() => {
+          memberInfoApi.remove(id).then(function (response) {
+            var jsonData = response.data;
+
+            if (jsonData.result) {
+              
+              self.closeIndexPage();
+
+            }
+          });
+        });
+
+    },
+    closeIndexPage(){
+        //删除当前页面
+        this.$store.dispatch('tagsView/delView', {
+            path: '/base/memberInfo/view',
+            name: 'baseMemberInfoView'
+        })
+        .then(({ visitedViews }) => {
+            //刷新列表页面
+            if(window["listPage"]!=null){
+                window["listPage"].refreshList();
+            }
+
+            this.$router.push({
+                path: "/base/memberInfo/list"
+            })
+        });
+    },
+    beforeAvatarUpload(file) {
+      const isJPG = file.type === "image/jpeg";
+      const isLt2M = file.size / 1024 / 1024 < 2;
+
+      if (!isJPG) {
+        this.$message.error("上传头像图片只能是 JPG 格式!");
+      }
+      if (!isLt2M) {
+        this.$message.error("上传头像图片大小不能超过 2MB!");
+      }
+      return isJPG && isLt2M;
+    },
     handleSubmit() {
       var self = this;
 
@@ -598,11 +1064,10 @@ export default {
           (function () {
             var id = self.formModel.id;
 
-            if (id == null || id.length == 0) {
-              return memberInfoApi.add(self.formModel);
-            } else {
-              return memberInfoApi.update(self.formModel);
-            }
+            self.form.hobbyInfoList=self.hobbyInfoList;
+
+            return memberInfoApi.update(self.form);
+            
           })().then(function (response) {
             var jsonData = response.data;
 
@@ -612,14 +1077,13 @@ export default {
                 type: "success",
               });
 
-              self.$emit("close", true);
+                self.$refs.drawer.closeDrawer();
+                self.initData();
             } else {
               self.$message({
                 message: jsonData.message + "",
                 type: "warning",
               });
-
-              //self.$emit("close", false);
             }
           });
         }
@@ -702,28 +1166,7 @@ export default {
     //self.loadTree();
   },
   mounted: function () {
-    var self = this;
-
-    self.loading = true;
-
-    self.businessKey = this.$route.query.businessKey;
-
-    (function () {
-        return memberInfoApi.view(self.businessKey);
-    })()
-      .then((response) => {
-        var jsonData = response.data;
-        self.loading = false;
-
-        if (jsonData.result) {
-          self.formModel = jsonData.data;
-        } else {
-          self.$message.error(jsonData.message + "");
-        }
-      })
-      .catch((error) => {
-        self.$message.error(error + "");
-      });
+    this.initData();
   },
 };
 </script>

+ 708 - 0
src/views/base/memberInfoDel-list.vue

@@ -0,0 +1,708 @@
+<template>
+  <div style="padding-left: 5px">
+    <el-breadcrumb separator=">">
+      <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
+      <el-breadcrumb-item>
+        <a href="#">基础信息管理</a>
+      </el-breadcrumb-item>
+      <el-breadcrumb-item>
+        <a href="/memberInfo">已删除会员管理</a>
+      </el-breadcrumb-item>
+    </el-breadcrumb>
+    <el-form
+      ref="queryForm"
+      :model="queryModel"
+      inline
+      class="demo-form-inline"
+      :label-width="'100px'"
+    >
+      <el-collapse accordion>
+        <el-collapse-item>
+          <template slot="title">
+            <div style="line-height:10px;margin-top:10px">
+              <el-form-item label="真实姓名" prop="realName">
+                <el-input type="text" size="mini" v-model="queryModel.realName" style="width:250px;"></el-input>
+              </el-form-item>
+              <el-form-item label="身份证号" prop="idCard">
+                <el-input type="text" size="mini" v-model="queryModel.idCard" style="width:250px;"></el-input>
+              </el-form-item>
+              <el-form-item label="所属工会" prop="orgId">
+                    <el-multi-tree-select
+                      style="width:250px;"
+                      size="mini"
+                      :props="props"
+                      :options="orgResult"
+                      v-model="queryModel.orgIdArr"> 
+                    </el-multi-tree-select>
+              </el-form-item>
+            </div>
+          </template>
+          <div>      
+            <el-form-item label="审核状态" prop="status">
+              <el-select v-model="queryModel.statusArr" multiple placeholder="请选择" size="mini" clearable style="width:250px;">
+                <el-option
+                  v-for="item in statusList"
+                  :key="item.value"
+                  :label="item.name"
+                  :value="item.value">
+                </el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="性别" prop="gender">
+              <el-select v-model="queryModel.gender" placeholder="请选择" size="mini" clearable style="width:250px;">
+                <el-option
+                  v-for="item in genderList"
+                  :key="item.value"
+                  :label="item.name"
+                  :value="item.value">
+                </el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="户口所在地" prop="status">
+              <el-select v-model="queryModel.statusArr" multiple placeholder="请选择" size="mini" clearable style="width:250px;">
+                <el-option
+                  v-for="item in statusList"
+                  :key="item.value"
+                  :label="item.name"
+                  :value="item.value">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </div>
+          <div>      
+            <el-form-item label="学历" prop="education">
+              <el-select v-model="queryModel.education" multiple filterable placeholder="请选择" size="mini" clearable style="width:250px;">
+              <el-option
+                    v-for="result in eduList"
+                    :key="result.id"
+                    :label="result.name"
+                    :value="result.value"
+                  ></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="行业" prop="industry">
+              <el-select v-model="queryModel.industry" multiple filterable placeholder="请选择" size="mini" clearable style="width:250px;">
+              <el-option
+                    v-for="result in industryList"
+                    :key="result.id"
+                    :label="result.name"
+                    :value="result.value"
+                  ></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="月薪" prop="salaryRange">
+              <el-select v-model="queryModel.salaryRange" multiple filterable placeholder="请选择" size="mini" clearable style="width:250px;">
+              <el-option
+                    v-for="result in salaryRangeList"
+                    :key="result.id"
+                    :label="result.name"
+                    :value="result.value"
+                  ></el-option>
+              </el-select>
+            </el-form-item>
+          </div>
+          <div>      
+            <el-form-item label="住房" prop="housingSituation">
+              <el-select v-model="queryModel.housingSituation" multiple filterable placeholder="请选择" size="mini" clearable style="width:250px;">
+              <el-option
+                    v-for="result in housingSituationList"
+                    :key="result.id"
+                    :label="result.name"
+                    :value="result.value"
+                  ></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="婚姻" prop="maritalStatus">
+              <el-select v-model="queryModel.maritalStatus" multiple filterable placeholder="请选择" size="mini" clearable style="width:250px;">
+              <el-option
+                    v-for="result in maritalStatusList"
+                    :key="result.id"
+                    :label="result.name"
+                    :value="result.value"
+                  ></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="子女" prop="childStatus">
+              <el-select v-model="queryModel.childStatus" multiple filterable placeholder="请选择" size="mini" clearable style="width:250px;">
+              <el-option
+                    v-for="result in childStatusList"
+                    :key="result.id"
+                    :label="result.name"
+                    :value="result.value"
+                  ></el-option>
+              </el-select>
+            </el-form-item>
+          </div>
+                    <div>      
+            <el-form-item label="出生地" prop="birthplaceArr">
+              <el-cascader
+              v-model="queryModel.birthplaceArr"
+              :options="cityList"
+              size="mini"
+              clearable 
+              style="width:250px;"
+              >
+              </el-cascader>
+            </el-form-item>
+            <el-form-item label="工作地" prop="status">
+              <el-select v-model="queryModel.statusArr" multiple placeholder="请选择" size="mini" clearable style="width:250px;">
+                <el-option
+                  v-for="item in statusList"
+                  :key="item.value"
+                  :label="item.name"
+                  :value="item.value">
+                </el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="兴趣爱好" prop="hobbyArr">
+              <el-select v-model="queryModel.hobbyArr" multiple placeholder="请选择" size="mini" clearable style="width:250px;">
+                <el-option
+                  v-for="item in hobbyInfoList"
+                  :key="item.id"
+                  :label="item.name"
+                  :value="item.id">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </div>
+        </el-collapse-item>
+      </el-collapse>
+      <el-form-item>
+        <el-button
+          type="primary"
+          size="mini"
+          icon="ios-search"
+          @click="changePage(1)"
+          :loading="loading"
+          >查询</el-button
+        >&nbsp;
+        <el-button
+          type="info"
+          size="mini"
+          style="margin-left: 8px"
+          @click="handleReset('queryForm')"
+          >重置</el-button
+        >&nbsp;
+      </el-form-item>
+    </el-form>
+    <el-divider></el-divider>
+    <el-row class="button-group">
+      <el-button
+        type="success"
+        size="small"
+        plain
+        icon="el-icon-refresh"
+        :disabled="multipleSelection.length == 0"
+        @click="handleBatchActivation"
+        >批量恢复</el-button
+      >
+    </el-row>
+    <el-table
+      ref="formTable"
+      :data="tableData"
+      v-loading="loading"
+      stripe
+      :height="tableHeight"
+      @sort-change="sortChange"
+      @selection-change="handleSelectionChange"
+    >
+        <el-table-column type="selection" width="55"></el-table-column>
+        <el-table-column
+            prop="faceImage"
+            label="头像"
+            fixed="left"
+        >
+            <template slot-scope="{ row }">
+            <a :href="row.faceImage" target="_blank">
+                <el-avatar
+                :size="48"
+                shape="circle"
+                :src="
+                    row.faceImage +
+                    '?x-oss-process=image/resize,m_fill,w_64,h_64'
+                "
+                :key="row.id"
+                ></el-avatar>
+            </a>
+            </template>
+        </el-table-column>
+        <el-table-column
+            prop="realName"
+            label="真实姓名"
+            width="100"
+            fixed="left"
+        ></el-table-column>
+        <el-table-column
+            prop="phone"
+            label="手机号码"
+            width="150"
+        ></el-table-column>
+        <el-table-column
+            prop="idCard"
+            label="身份证号"
+            width="200"
+        ></el-table-column>
+        <el-table-column
+            prop="orgName"
+            label="所属工会"
+            width="150"
+        ></el-table-column>
+        <el-table-column prop="status"  label="审核状态">
+            <template>
+                <span style="color:red">已删除</span>
+            </template>
+        </el-table-column>
+        <el-table-column prop="publicNot" label="信息公开">
+            <template slot-scope="{ row }">
+                <span v-if="row.publicNot">公开</span>
+                <span v-else style="color:red">不公开</span>
+            </template>
+        </el-table-column>
+        <el-table-column
+            prop="registeredResidenceN"
+            label="户口所在地"
+            width="200"
+        ></el-table-column>
+        <el-table-column
+            prop="educationN"
+            label="学历"
+        ></el-table-column>
+        <el-table-column
+            prop="industryN"
+            label="行业"
+            width="150"
+        ></el-table-column>
+        <el-table-column
+            prop="salaryRangeN"
+            label="月薪"
+            width="150"
+        ></el-table-column>
+        <el-table-column
+            prop="housingSituationN"
+            label="住房情况"
+            width="150"
+        ></el-table-column>
+        <el-table-column
+            prop="maritalStatusN"
+            label="婚姻情况"
+        ></el-table-column>
+        <el-table-column
+            prop="childStatusN"
+            label="子女情况"
+        ></el-table-column>
+        <el-table-column label="操作" width="200" fixed="right">
+            <template slot-scope="{ row }">
+            <el-row>
+                <el-col>
+                <el-link
+                    type="primary"
+                    :underline="false"
+                    @click="handleView(row,'view')"
+                    >查看详情</el-link
+                >-
+                <el-link
+                  v-if="row.status !='0'"
+                    type="primary"
+                    :underline="false"
+                    @click="handleView(row,'edit')"
+                    >编辑-
+                    </el-link>
+                <el-link
+                    type="success"
+                    :underline="false"
+                    @click="handleActivation(row)"
+                    >恢复</el-link>
+                </el-col>
+            </el-row>
+            </template>
+        </el-table-column>
+    </el-table>
+    <el-pagination
+      :current-page.sync="pageIndex"
+      :total="totalElements"
+      :page-sizes="pageSizeList"
+      @current-change="changePage"
+      @size-change="pageSizeChange"
+      layout="total, sizes, prev, pager, next, jumper"
+    ></el-pagination>
+    <memberInfo-detail
+      v-if="showModal"
+      :businessKey="businessKey"
+      :title="modalTitle"
+      @close="onDetailModalClose"
+    ></memberInfo-detail>
+    <memberInfo-view
+      v-if="showModal2"
+      :businessKey="businessKey"
+      :title="modalTitle2"
+      @close="onDetailModalClose2"
+    ></memberInfo-view>
+  </div>
+</template>
+<script>
+
+import memberInfoDetail from "./memberInfo-detail";
+import memberInfoApi from "@/api/base/memberInfo";
+import memberInfoView from './memberInfo-view.vue';
+import orgInfoApi from "@/api/base/orgInfo";
+import MultiSelectTree from "@/components/MultiSelectTree";
+import dataDictionaryApi from "@/api/sys/dataDictionary";
+import cityApi from "@/api/base/city";
+import hobbyInfoApi from "@/api/base/hobbyInfo";
+
+export default {
+  name: "BaseMemberInfoDelList",
+  data() {
+    var self = this;
+    return {
+      queryModel: {
+        realName: "",
+        idCard:"",
+        orgIdArr:[],
+        statusArr:[],
+      },
+      loading: false,
+      tableData: [],
+      treeData: [],
+      pageIndex: 1,
+      pageSize: 10,
+      totalPages: 0,
+      totalElements: 0,
+      field: "",
+      direction: "",
+      pageSizeList: [10, 20, 30],
+      multipleSelection: [],
+      showModal: false,
+      showModal2: false,
+      modalTitle: "",
+      modalTitle2: "",
+      businessKey: "",
+      tableHeight: 300,
+      showDeviceModal: false,
+      orgResult: [],
+      props: {
+        // 配置项(必选)
+        value: "id",
+        label: "name",
+        children: "children",
+      },
+      batchImportVisible: false,
+      batchImportFileList: [],
+      xlsLoading: false,
+      sceneData: [],
+      typeData: [],
+      deviceRelationTitle: "",
+      showIconModal: false,
+      iconModalTitle: "",
+      statusList:[
+        {
+          "value":"0",
+          "name":"未审核"
+        },
+        {
+          "value":"1",
+          "name":"已审核"
+        },
+        {
+          "value":"2",
+          "name":"审核不通过"
+        },
+      ],
+      genderList:[
+        {
+          "value":"0",
+          "name":"男"
+        },
+        {
+          "value":"1",
+          "name":"女"
+        }
+      ],
+      eduList:[],
+      industryList:[],
+      salaryRangeList:[],
+      housingSituationList:[],
+      maritalStatusList:[],
+      childStatusList:[],
+      taAgeRangeList:[],
+      hobbyInfoList:[],
+      
+    };
+  },
+  created() {
+    var self = this;
+
+    orgInfoApi.treeList().then(function (response) {
+      var jsonData = response.data;
+      if (jsonData.result) {
+        if (jsonData.data != null && jsonData.data != "") {
+          self.orgResult = jsonData.data;
+        }
+      }
+    });
+
+    dataDictionaryApi
+      .findByCatalogName({
+        catalogName: "学历",
+      })
+      .then((response) => {
+        var jsonData = response.data;
+        this.eduList = jsonData.data;
+      });
+
+    dataDictionaryApi
+      .findByCatalogName({
+        catalogName: "行业",
+      })
+      .then((response) => {
+        var jsonData = response.data;
+        this.industryList = jsonData.data;
+      });
+
+    dataDictionaryApi
+      .findByCatalogName({
+        catalogName: "月薪",
+      })
+      .then((response) => {
+        var jsonData = response.data;
+        this.salaryRangeList = jsonData.data;
+      });
+
+    dataDictionaryApi
+      .findByCatalogName({
+        catalogName: "住房情况",
+      })
+      .then((response) => {
+        var jsonData = response.data;
+        this.housingSituationList = jsonData.data;
+      });
+
+    dataDictionaryApi
+      .findByCatalogName({
+        catalogName: "婚姻情况",
+      })
+      .then((response) => {
+        var jsonData = response.data;
+        this.maritalStatusList = jsonData.data;
+      });
+
+    dataDictionaryApi
+      .findByCatalogName({
+        catalogName: "子女情况",
+      })
+      .then((response) => {
+        var jsonData = response.data;
+        this.childStatusList = jsonData.data;
+      });
+
+    dataDictionaryApi
+      .findByCatalogName({
+        catalogName: "年龄范围",
+      })
+      .then((response) => {
+        var jsonData = response.data;
+        this.taAgeRangeList = jsonData.data;
+      });
+
+    cityApi.treeList().then((response) => {
+        var jsonData = response.data;
+        this.cityList = jsonData.data;
+    });
+
+    var formData = new FormData();
+
+    formData.append("memberInfoId", "");
+
+    hobbyInfoApi.list(formData).then((response) => {
+        var jsonData = response.data;
+        this.hobbyInfoList = jsonData.data;
+    });
+
+    self.changePage(1);
+  },
+  methods: {
+    changePage(pageIndex) {
+      var self = this;
+
+      self.loading = true;
+
+      self.pageIndex = pageIndex;
+      var formData = new FormData();
+
+      formData.append("pageIndex", self.pageIndex);
+      formData.append("pageSize", self.pageSize);
+
+      formData.append("realName", self.queryModel.realName);
+      formData.append("idCard", self.queryModel.idCard);
+      formData.append("orgIdArr", self.queryModel.orgIdArr);
+      formData.append("statusArr", self.queryModel.statusArr);
+
+      memberInfoApi
+        .pageListDel(formData)
+        .then(function (response) {
+          self.loading = false;
+
+          var jsonData = response.data.data;
+
+          self.tableData = jsonData.data;
+          self.totalPages = jsonData.totalPages;
+          self.totalElements = jsonData.recordsTotal;
+          //45为分页栏的高度
+          //页面高度-列表上面的高度-分页栏高度
+          self.tableHeight =
+            window.innerHeight - self.$refs.formTable.$el.offsetTop - 100;
+        })
+        .catch((error) => {
+          self.loading = false;
+          // self.$message.error(error + "");
+        });
+    },
+    refreshList() {
+      this.changePage(this.pageIndex);
+    },
+    pageSizeChange(pageSize) {
+      this.pageSize = pageSize;
+    },
+    sortChange(data) {
+      this.field = data.column.field;
+      this.direction = data.order == "ascending" ? "asc" : "desc";
+
+      this.changePage(this.pageIndex);
+    },
+    handleSelectionChange(val) {
+      this.multipleSelection = val;
+    },
+    handleReset(name) {
+      this.$refs[name].resetFields();
+    },
+    handleAdd() {
+      this.modalTitle = "新增";
+      this.businessKey = "";
+      this.showModal = true;
+    },
+    handleEdit(record) {
+      this.modalTitle = "编辑";
+      this.businessKey = record.id;
+      this.showModal = true;
+    },
+    // handleView(record) {
+    //   this.modalTitle2 = "会员详情";
+    //   this.businessKey = record.id;
+    //   this.showModal2 = true;
+    // },
+    handleView(row,type){
+      window["listPage"] = this;
+
+      var path = "/base/memberInfoDel/view";
+
+      this.$store.dispatch("tagsView/delView", {
+          name: "baseMemberInfoDelView",
+          path: path,
+          })
+          .then(({ visitedViews }) => {
+          this.$router.push({
+              path: path,
+              query: {
+                businessKey: row.id,
+                type:type
+              },
+          });
+      });
+    },
+    handleActivation(record) {
+      var self = this;
+
+      self
+        .$confirm("是否确认恢复?", "提示", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning",
+        })
+        .then(() => {
+          memberInfoApi.activation(record.id).then(function (response) {
+            var jsonData = response.data;
+
+            if (jsonData.result) {
+              // var index = self.tableData.indexOf(record);
+              // self.tableData.splice(index, 1);
+              self.changePage(self.pageIndex);
+
+              self.$message({
+                type: "success",
+                message: "恢复成功!",
+              });
+            }
+          });
+        });
+    },
+    handleBatchActivation() {
+      var self = this;
+
+      var idList = this.multipleSelection.map((record) => {
+        return record.id;
+      });
+
+      this.$confirm("是否确认恢复选中项?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      }).then(() => {
+        memberInfoApi.batchActivation(idList).then(function (response) {
+          var jsonData = response.data;
+
+          if (jsonData.result) {
+            self.changePage(self.pageIndex);
+
+            self.$message({
+              type: "success",
+              message: "恢复成功!",
+            });
+          }
+        });
+      });
+    },
+    onDetailModalClose(refreshed) {
+      //保存成功后回调
+      this.showModal = false;
+
+      if (refreshed) {
+        this.changePage(this.pageIndex);
+      }
+    },
+    onDetailModalClose2(refreshed) {
+      //保存成功后回调
+      this.showModal2 = false;
+
+      if (refreshed) {
+        this.changePage(this.pageIndex);
+      }
+    },
+  },
+  mounted: function () {},
+  components: {
+    "memberInfo-detail": memberInfoDetail,
+    "memberInfo-view": memberInfoView,
+    "el-multi-tree-select": MultiSelectTree,
+  },
+};
+</script>
+<style lang="scss" scoped>
+.el-breadcrumb {
+  margin: 10px;
+  line-height: 20px;
+}
+
+.el-divider {
+  margin: 5px 0;
+}
+
+.demo-form-inline {
+  margin-left: 10px;
+  text-align: left;
+}
+
+.button-group {
+  margin-left: 10px;
+  text-align: left;
+}
+</style>

+ 1251 - 0
src/views/base/memberInfoDel-view.vue

@@ -0,0 +1,1251 @@
+
+<template>
+  <div style="padding-left: 5px;text-align: left" >
+    <el-breadcrumb separator=">">
+      <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
+      <el-breadcrumb-item>
+        <a href="#">基础信息管理</a>
+      </el-breadcrumb-item>
+      <el-breadcrumb-item>
+        <a href="/memberInfo">已删除会员详情</a>
+      </el-breadcrumb-item>
+    </el-breadcrumb>
+    <el-divider></el-divider>
+
+
+  <!-- <el-dialog
+    :visible.sync="showDialog"
+    :title="title"
+    :modal-append-to-body="true"
+    append-to-body
+    style="text-align:left;"
+    width="1250px"
+    :close-on-click-modal="false"
+    @close="closeDialog"
+  > -->
+    <div class="user-panel" v-loading="loading">
+        <el-form ref="form" :model="formModel" inline :label-width="'100px'">
+            <el-container>
+                <el-aside width="1000px">
+                <template v-if="formModel.status =='0'">
+                    <span class="span-realName" v-if="formModel.memberUpdateLog.realName" style="color:red">
+                        <el-tooltip class="item" effect="dark" content="文字红色为会员修改过的资料" placement="top">
+                            <span>{{formModel.realName}}</span>
+                        </el-tooltip>
+                    </span>
+                    <span class="span-realName" v-else>{{formModel.realName}}</span> 
+                </template>
+                <template v-else>
+                    <span class="span-realName">{{formModel.realName}}</span> 
+                </template>
+                    <el-row>
+                        <el-col :span="8">
+                            <div class="grid-content bg-purple">
+                                <el-form-item label="联系方式:">
+                                    <template v-if="formModel.status =='0'">
+                                        <span class="grid-content-span" v-if="formModel.memberUpdateLog.phone" style="color:red">
+                                            <el-tooltip class="item" effect="dark" content="文字红色为会员修改过的资料" placement="top">
+                                                <span>{{formModel.phone}}</span>
+                                            </el-tooltip>
+                                        </span>
+                                        <span class="grid-content-span" v-else>
+                                            {{formModel.phone}}
+                                        </span>
+                                    </template>
+                                    <template v-else>
+                                        <span class="grid-content-span" >{{formModel.phone}}</span>
+                                    </template>
+                                </el-form-item>
+                            </div>
+                        </el-col>
+                        <el-col :span="8">
+                            <div class="grid-content bg-purple">
+                                <el-form-item label="会员ID:">
+                                    <span class="grid-content-span">NO0001</span>
+                                </el-form-item>
+                            </div>
+                        </el-col>
+                        <el-col :span="8">
+                            <div class="grid-content bg-purple">
+                                <el-form-item label="审核状态:">
+                                    <span class="grid-content-span" v-if="formModel.status=='0'" style="color:red">未审核</span>
+                                    <span class="grid-content-span" v-else-if="formModel.status=='1'" style="color:green">已审核</span>
+                                    <span class="grid-content-span" v-else-if="formModel.status=='2'">审核不通过</span>
+                                </el-form-item>
+                            </div>
+                        </el-col>
+                    </el-row>
+                    <el-row>
+                        <el-col :span="8">
+                            <div class="grid-content bg-purple">
+                                <el-form-item label="身份证号:">
+                                    <template v-if="formModel.status =='0'">
+                                        <span class="grid-content-span" v-if="formModel.memberUpdateLog.idCard" style="color:red">
+                                            <el-tooltip class="item" effect="dark" content="文字红色为会员修改过的资料" placement="top">
+                                                <span>{{formModel.idCard}}</span>
+                                            </el-tooltip>
+                                        </span>
+                                        <span class="grid-content-span" v-else>
+                                            {{formModel.idCard}}
+                                        </span>
+                                    </template>
+                                    <template v-else>
+                                        <span class="grid-content-span" >{{formModel.idCard}}</span>
+                                    </template>
+                                </el-form-item>
+                            </div>
+                        </el-col>
+                        <el-col :span="8">
+                            <div class="grid-content bg-purple">
+                                <el-form-item label="性别:">
+                                    <template v-if="formModel.status =='0'">
+                                         <span class="grid-content-span" v-if="formModel.memberUpdateLog.gender" style="color:red">
+                                            <el-tooltip class="item" effect="dark" content="文字红色为会员修改过的资料" placement="top">
+                                                <span class="grid-content-span" v-if="formModel.gender">女</span>
+                                                <span class="grid-content-span" v-else-if="!formModel.gender">男</span>
+                                            </el-tooltip>
+                                        </span>
+                                        <span class="grid-content-span" v-else>
+                                            <span class="grid-content-span" v-if="formModel.gender">女</span>
+                                            <span class="grid-content-span" v-else-if="!formModel.gender">男</span>
+                                        </span> 
+                                    </template>
+                                    <template v-else>
+                                        <span class="grid-content-span" v-if="formModel.gender">女</span>
+                                        <span class="grid-content-span" v-else-if="!formModel.gender">男</span>
+                                    </template>
+                                </el-form-item>
+                            </div>
+                        </el-col>
+                        <el-col :span="8">
+                            <div class="grid-content bg-purple">
+                                <el-form-item label="行业:">
+                                    <template v-if="formModel.status =='0'">
+                                        <span class="grid-content-span" v-if="formModel.memberUpdateLog.industry" style="color:red">
+                                            {{formModel.industryN}}
+                                        </span>
+                                        <span class="grid-content-span" v-else>
+                                            {{formModel.industryN}}
+                                        </span>
+                                    </template>
+                                    <template v-else>
+                                        <span class="grid-content-span" >{{formModel.industryN}}</span>
+                                    </template>
+                                </el-form-item>
+                            </div>
+                        </el-col>
+                    </el-row>
+                    <el-row>
+                        <el-col :span="8">
+                            <div class="grid-content bg-purple">
+                                <el-form-item label="出生年月:">
+                                    <template v-if="formModel.status =='0'">
+                                        <span class="grid-content-span" v-if="formModel.memberUpdateLog.birthday" style="color:red">
+                                            {{formModel.birthday}}
+                                        </span>
+                                        <span class="grid-content-span" v-else>
+                                            {{formModel.birthday}}
+                                        </span>
+                                    </template>
+                                    <template v-else>
+                                        <span class="grid-content-span" >{{formModel.birthday}}</span>
+                                    </template>
+                                </el-form-item>
+                            </div>
+                        </el-col>
+                        <el-col :span="8">
+                            <div class="grid-content bg-purple">
+                                <el-form-item label="年龄:">
+                                    <span class="grid-content-span">{{formModel.age}}岁</span>
+                                </el-form-item>
+                            </div>
+                        </el-col>
+                        <el-col :span="8">
+                            <div class="grid-content bg-purple">
+                                <el-form-item label="岗位:">
+                                    <template v-if="formModel.status =='0'">
+                                        <span class="grid-content-span" v-if="formModel.memberUpdateLog.post" style="color:red">
+                                            {{formModel.post}}
+                                        </span>
+                                        <span class="grid-content-span" v-else>
+                                            {{formModel.post}}
+                                        </span>
+                                    </template>
+                                    <template v-else>
+                                        <span class="grid-content-span" >{{formModel.post}}</span>
+                                    </template>
+                                </el-form-item>
+                            </div>
+                        </el-col>
+                    </el-row>
+                    <el-row>
+                        <el-col :span="8">
+                            <div class="grid-content bg-purple">
+                                <el-form-item label="出生地:">
+                                    <template v-if="formModel.status =='0'">
+                                        <span class="grid-content-span" v-if="formModel.memberUpdateLog.birthplace" style="color:red">
+                                            {{formModel.birthplaceN}}
+                                        </span>
+                                        <span class="grid-content-span" v-else>
+                                            {{formModel.birthplaceN}}
+                                        </span>
+                                    </template>
+                                    <template v-else>
+                                        <span class="grid-content-span" >{{formModel.birthplaceN}}</span>
+                                    </template>
+                                </el-form-item>
+                            </div>
+                        </el-col>
+                        <el-col :span="8">
+                            <div class="grid-content bg-purple">
+                                <el-form-item label="学历:">
+                                    <template v-if="formModel.status =='0'">
+                                        <span class="grid-content-span" v-if="formModel.memberUpdateLog.education" style="color:red">
+                                            {{formModel.educationN}}
+                                        </span>
+                                        <span class="grid-content-span" v-else>
+                                            {{formModel.educationN}}
+                                        </span>
+                                    </template>
+                                    <template v-else>
+                                        <span class="grid-content-span" >{{formModel.educationN}}</span>
+                                    </template>
+                                </el-form-item>
+                            </div>
+                        </el-col>
+                        <el-col :span="8">
+                            <div class="grid-content bg-purple">
+                                <el-form-item label="月薪:">
+                                    <template v-if="formModel.status =='0'">
+                                        <span class="grid-content-span" v-if="formModel.memberUpdateLog.salaryRange" style="color:red">
+                                            {{formModel.salaryRangeN}}
+                                        </span>
+                                        <span class="grid-content-span" v-else>
+                                            {{formModel.salaryRangeN}}
+                                        </span>
+                                    </template>
+                                    <template v-else>
+                                        <span class="grid-content-span" >{{formModel.salaryRangeN}}</span>
+                                    </template>
+                                </el-form-item>
+                            </div>
+                        </el-col>
+                    </el-row>
+                    <el-row>
+                        <el-col :span="8">
+                            <div class="grid-content bg-purple">
+                                <el-form-item label="户口所在地:">
+                                    <template v-if="formModel.status =='0'">
+                                        <span class="grid-content-span" v-if="formModel.memberUpdateLog.registeredResidence" style="color:red">
+                                            {{formModel.registeredResidenceN}}
+                                        </span>
+                                        <span class="grid-content-span" v-else>
+                                            {{formModel.registeredResidenceN}}
+                                        </span>
+                                    </template>
+                                    <template v-else>
+                                        <span class="grid-content-span" >{{formModel.registeredResidenceN}}</span>
+                                    </template>
+                                </el-form-item>
+                            </div>
+                        </el-col>
+                        <el-col :span="8">
+                            <div class="grid-content bg-purple">
+                                <el-form-item label="身高:">
+                                    <template v-if="formModel.status =='0'">
+                                        <span class="grid-content-span" v-if="formModel.memberUpdateLog.height" style="color:red">
+                                            {{formModel.height}}CM
+                                        </span>
+                                        <span class="grid-content-span" v-else>
+                                            {{formModel.height}}CM
+                                        </span>
+                                    </template>
+                                    <template v-else>
+                                        <span class="grid-content-span" >{{formModel.height}}CM</span>
+                                    </template>
+                                </el-form-item>
+                            </div>
+                        </el-col>
+                        <el-col :span="8">
+                            <div class="grid-content bg-purple">
+                                <el-form-item label="工作单位:">
+                                    <template v-if="formModel.status =='0'">
+                                        <span class="grid-content-span" v-if="formModel.memberUpdateLog.workUnit" style="color:red">
+                                            {{formModel.workUnit}}
+                                        </span>
+                                        <span class="grid-content-span" v-else>
+                                            {{formModel.workUnit}}
+                                        </span>
+                                    </template>
+                                    <template v-else>
+                                        <span class="grid-content-span" >{{formModel.workUnit}}</span>
+                                    </template>
+                                </el-form-item>
+                            </div>
+                        </el-col>
+                    </el-row>
+                    <el-row>
+                        <el-col :span="8">
+                            <div class="grid-content bg-purple">
+                                <el-form-item label="工作所在地:">
+                                    <template v-if="formModel.status =='0'">
+                                        <span class="grid-content-span" v-if="formModel.memberUpdateLog.workplace" style="color:red">
+                                            {{formModel.workplaceN}}
+                                        </span>
+                                        <span class="grid-content-span" v-else>
+                                            {{formModel.workplaceN}}
+                                        </span>
+                                    </template>
+                                    <template v-else>
+                                        <span class="grid-content-span" >{{formModel.workplaceN}}</span>
+                                    </template>
+                                </el-form-item>
+                            </div>
+                        </el-col>
+                        <el-col :span="8">
+                            <div class="grid-content bg-purple">
+                                <el-form-item label="体重:">
+                                    <template v-if="formModel.status =='0'">
+                                        <span class="grid-content-span" v-if="formModel.memberUpdateLog.weight" style="color:red">
+                                            {{formModel.weight}}kg
+                                        </span>
+                                        <span class="grid-content-span" v-else>
+                                            {{formModel.weight}}kg
+                                        </span>
+                                    </template>
+                                    <template v-else>
+                                        <span class="grid-content-span" >{{formModel.weight}}kg</span>
+                                    </template>
+                                </el-form-item>
+                            </div>
+                        </el-col>
+                        <el-col :span="8">
+                            <div class="grid-content bg-purple">
+                                <el-form-item label="住房状况:">
+                                    <template v-if="formModel.status =='0'">
+                                        <span class="grid-content-span" v-if="formModel.memberUpdateLog.housingSituation" style="color:red">
+                                            {{formModel.housingSituationN}}
+                                        </span>
+                                        <span class="grid-content-span" v-else>
+                                            {{formModel.housingSituationN}}
+                                        </span>
+                                    </template>
+                                    <template v-else>
+                                        <span class="grid-content-span" >{{formModel.housingSituationN}}</span>
+                                    </template>
+                                </el-form-item>
+                            </div>
+                        </el-col>
+                    </el-row>
+                    <el-row>
+                        <el-col :span="8">
+                            <div class="grid-content bg-purple">
+                                <el-form-item label="婚姻状况:">
+                                    <template v-if="formModel.status =='0'">
+                                        <span class="grid-content-span" v-if="formModel.memberUpdateLog.maritalStatus" style="color:red">
+                                            {{formModel.maritalStatusN}}
+                                        </span>
+                                        <span class="grid-content-span" v-else>
+                                            {{formModel.maritalStatusN}}
+                                        </span>
+                                    </template>
+                                    <template v-else>
+                                        <span class="grid-content-span" >{{formModel.maritalStatusN}}</span>
+                                    </template>
+                                </el-form-item>
+                            </div>
+                        </el-col>
+                        <el-col :span="8">
+                            <div class="grid-content bg-purple">
+                                <el-form-item label="子女情况:">
+                                    <template v-if="formModel.status =='0'">
+                                        <span class="grid-content-span" v-if="formModel.memberUpdateLog.childStatus" style="color:red">
+                                            {{formModel.childStatusN}}
+                                        </span>
+                                        <span class="grid-content-span" v-else>
+                                            {{formModel.childStatusN}}
+                                        </span>
+                                    </template>
+                                    <template v-else>
+                                        <span class="grid-content-span" >{{formModel.childStatusN}}</span>
+                                    </template>
+                                </el-form-item>
+                            </div>
+                        </el-col>
+                        <el-col :span="8">
+                            <div class="grid-content bg-purple">
+                                <el-form-item label="信息公开:">
+                                    <span class="grid-content-span" v-if="formModel.publicNot">公开</span>
+                                    <span class="grid-content-span" v-else style="color:red">不公开</span>
+                                </el-form-item>
+                            </div>
+                        </el-col>
+                    </el-row>
+                    <el-divider></el-divider>
+                    <div class="hobby-div">
+                        <template v-if="formModel.status =='0'">
+                            <h3 v-if="formModel.memberUpdateLog.hobby" style="color:red">
+                                <el-tooltip class="item" effect="dark" content="文字红色为会员修改过的资料" placement="top">
+                                    <span>兴趣爱好</span>
+                                </el-tooltip>
+                            </h3>
+                            <h3 v-else>兴趣爱好</h3>
+                        </template>
+                        <template v-else>
+                            <h3>兴趣爱好</h3>
+                        </template>
+                        <el-tag type="danger" v-for="(item,i) in formModel.hobbyInfoList" :key="i">
+                            {{item.name}}
+                        </el-tag>
+                    </div>
+                    <el-divider></el-divider>
+                    <template v-if="formModel.status =='0'">
+                        <h3 v-if="formModel.memberUpdateLog.selfEvaluation" style="color:red">
+                            <el-tooltip class="item" effect="dark" content="文字红色为会员修改过的资料" placement="top">
+                                <span>自我评价</span>
+                            </el-tooltip>
+                        </h3>
+                        <h3 v-else>自我评价</h3>
+                    </template>
+                    <template v-else>
+                        <h3>自我评价</h3>
+                    </template>
+                    <p class="p-content">
+                        {{formModel.selfEvaluation}}
+                    </p>
+                    <el-divider></el-divider>
+                    <h3>择偶标准</h3> 
+                    <div>
+                        <el-form ref="form2" :model="formModel2" inline  :label-width="'100px'">
+                        <el-row>
+                            <el-col :span="8">
+                                <div class="grid-content bg-purple">
+                                    <el-form-item label="年龄范围:">
+                                        <template v-if="formModel.status =='0'">
+                                            <span class="grid-content-span" v-if="formModel.memberUpdateLog.taAgeRange" style="color:red">
+                                                {{formModel.taAgeRangeN}}
+                                            </span>
+                                            <span class="grid-content-span" v-else>
+                                                {{formModel.taAgeRangeN}}
+                                            </span>
+                                        </template>
+                                        <template v-else>
+                                            <span class="grid-content-span" >{{formModel.taAgeRangeN}}</span>
+                                        </template>
+                                    </el-form-item>
+                                </div>
+                            </el-col>
+                            <el-col :span="8">
+                                <div class="grid-content bg-purple">
+                                    <el-form-item label="月薪:">
+                                        <template v-if="formModel.status =='0'">
+                                            <span class="grid-content-span" v-if="formModel.memberUpdateLog.taIncomeRange" style="color:red">
+                                                {{formModel.taIncomeRangeN}}
+                                            </span>
+                                            <span class="grid-content-span" v-else>
+                                                {{formModel.taIncomeRangeN}}
+                                            </span>
+                                        </template>
+                                        <template v-else>
+                                            <span class="grid-content-span" >{{formModel.taIncomeRangeN}}</span>
+                                        </template>
+                                    </el-form-item>
+                                </div>
+                            </el-col>
+                            <el-col :span="8">
+                                <div class="grid-content bg-purple">
+                                    <el-form-item label="学历:">
+                                        <template v-if="formModel.status =='0'">
+                                            <span class="grid-content-span" v-if="formModel.memberUpdateLog.taEdu" style="color:red">
+                                                {{formModel.taEduN}}
+                                            </span>
+                                            <span class="grid-content-span" v-else>
+                                                {{formModel.taEduN}}
+                                            </span>
+                                        </template>
+                                        <template v-else>
+                                            <span class="grid-content-span" >{{formModel.taEduN}}</span>
+                                        </template>
+                                    </el-form-item>
+                                </div>
+                            </el-col>
+                        </el-row>
+                        <el-row>
+                            <el-col :span="8">
+                                <div class="grid-content bg-purple">
+                                    <el-form-item label="职业:">
+                                        <template v-if="formModel.status =='0'">
+                                            <span class="grid-content-span" v-if="formModel.memberUpdateLog.taOccupation" style="color:red">
+                                                {{formModel.taOccupationN}}
+                                            </span>
+                                            <span class="grid-content-span" v-else>
+                                                {{formModel.taOccupationN}}
+                                            </span>
+                                        </template>
+                                        <template v-else>
+                                            <span class="grid-content-span" >{{formModel.taOccupationN}}</span>
+                                        </template>
+                                    </el-form-item>
+                                </div>
+                            </el-col>
+                            <el-col :span="8">
+                                <div class="grid-content bg-purple">
+                                    <el-form-item label="工作地区:">
+                                        <template v-if="formModel.status =='0'">
+                                            <span class="grid-content-span" v-if="formModel.memberUpdateLog.taWorkplace" style="color:red">
+                                                {{formModel.taWorkplaceN}}
+                                            </span>
+                                            <span class="grid-content-span" v-else>
+                                                {{formModel.taWorkplaceN}}
+                                            </span>
+                                        </template>
+                                        <template v-else>
+                                            <span class="grid-content-span" >{{formModel.taWorkplaceN}}</span>
+                                        </template>
+                                    </el-form-item>
+                                </div>
+                            </el-col>
+                            <el-col :span="8">
+                                <div class="grid-content bg-purple">
+                                    <el-form-item label="其他要求:">
+                                        <template v-if="formModel.status =='0'">
+                                            <span class="grid-content-span" v-if="formModel.memberUpdateLog.taOther" style="color:red">
+                                                {{formModel.taOther}}
+                                            </span>
+                                            <span class="grid-content-span" v-else>
+                                                {{formModel.taOther}}
+                                            </span>
+                                        </template>
+                                        <template v-else>
+                                            <span class="grid-content-span" >{{formModel.taOther}}</span>
+                                        </template>
+                                    </el-form-item>
+                                </div>
+                            </el-col>
+                        </el-row>
+                        </el-form>
+                    </div>
+                    <el-divider></el-divider>
+                </el-aside>
+            <el-main>
+                <div class="right-main">
+                    <!-- <el-image
+                    style="width: 200px; height: 200px"
+                    :src="formModel.faceImage"
+                    fit="fit">
+                    </el-image> -->
+                    <template v-if="formModel.status =='0'">
+                        <el-image
+                        style="width: 200px; height: 200px"
+                        :src="formModel.faceImage"
+                        fit="fit">
+                        </el-image>
+                        <div v-if="formModel.memberUpdateLog.faceImage" style="color:red">会员头像已修改</div>
+                    </template>
+                    <template v-else>
+                        <el-upload
+                            class="avatar-uploader"
+                            name="photoFile"
+                            :action="uploadUrl"
+                            :show-file-list="false"
+                            :headers="headers"
+                            :data="uploadData"
+                            :on-success="handleAvatarSuccess"
+                            :before-upload="beforeAvatarUpload"
+                        >
+                            <img v-if="fileUrl" :src="fileUrl" class="avatar" />
+                            <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+                        </el-upload>
+                    </template>
+                </div>
+                <div class="right-button-group">
+                    <el-row class="right-button-group-row">
+                        <el-col :span="12">
+                            <el-button type="primary" plain @click="handleOpen"><i class="el-icon-edit"></i>编辑资料</el-button>
+                        </el-col>
+                        <el-col :span="12">
+                            <el-button type="success" @click="handleActivation"><i class="el-icon-refresh"></i>恢复会员</el-button>
+                        </el-col>
+                    </el-row>
+                </div>
+            </el-main>
+            </el-container>
+        </el-form>
+    </div>
+    
+    <el-drawer
+    title="编辑会员信息"
+    :before-close="handleClose"
+    :visible.sync="dialog"
+    direction="rtl"
+    custom-class="demo-drawer"
+    ref="drawer"
+    :open="handleOpen"
+    >
+    <el-divider></el-divider>
+    <div class="demo-drawer__content">
+        <el-form :model="form" ref="form" :label-width="'150px'">
+        <el-form-item label="真实姓名" :label-width="formLabelWidth">
+            <el-input v-model="form.realName" autocomplete="off"></el-input>
+        </el-form-item>
+        <el-form-item label="身份证号" :label-width="formLabelWidth">
+            <el-input v-model="form.idCard" autocomplete="off"></el-input>
+        </el-form-item>
+        <el-form-item label="手机号码" :label-width="formLabelWidth">
+            <el-input v-model="form.phone" autocomplete="off"></el-input>
+        </el-form-item>
+        <el-form-item label="性别" :label-width="formLabelWidth">
+            <el-radio-group v-model="form.gender">
+                <el-radio :label="false">男</el-radio>
+                <el-radio :label="true">女</el-radio>
+            </el-radio-group>
+        </el-form-item>
+        <el-form-item label="年龄" :label-width="formLabelWidth">
+            <el-input v-model="formModel.age" disabled></el-input>
+        </el-form-item>
+        <el-form-item label="身高" :label-width="formLabelWidth">
+            <el-input v-model="form.height" autocomplete="off">
+                <template slot="append">厘米/cm</template>
+            </el-input>
+        </el-form-item>
+         <el-form-item label="体重" :label-width="formLabelWidth">
+            <el-input v-model="form.weight" autocomplete="off">
+                <template slot="append">公斤/kg</template>
+            </el-input>
+        </el-form-item>
+        <el-form-item label="出生地" :label-width="formLabelWidth">
+            <el-cascader
+            v-model="form.birthplaceArr"
+            :options="cityList"
+            >
+            </el-cascader>
+        </el-form-item>
+        <el-form-item label="户口地" :label-width="formLabelWidth">
+            <el-cascader
+            v-model="form.registeredResidenceArr"
+            :options="cityList"
+            >
+            </el-cascader>
+        </el-form-item>
+        <el-form-item label="工作地" :label-width="formLabelWidth">
+            <el-cascader
+            v-model="form.workplaceArr"
+            :options="cityList"
+            >
+            </el-cascader>
+        </el-form-item>
+        <el-form-item label="学历" :label-width="formLabelWidth" prop="education">
+            <el-select v-model="form.education" filterable placeholder="请选择">
+             <el-option
+                  v-for="result in eduList"
+                  :key="result.id"
+                  :label="result.name"
+                  :value="result.value"
+                ></el-option>
+            </el-select>
+        </el-form-item>
+        <el-form-item label="行业" :label-width="formLabelWidth" prop="industry">
+            <el-select v-model="form.industry" filterable placeholder="请选择">
+             <el-option
+                  v-for="result in industryList"
+                  :key="result.id"
+                  :label="result.name"
+                  :value="result.value"
+                ></el-option>
+            </el-select>
+        </el-form-item>
+        <el-form-item label="工作单位" :label-width="formLabelWidth">
+            <el-input v-model="form.workUnit" autocomplete="off"></el-input>
+        </el-form-item>
+        <el-form-item label="岗位" :label-width="formLabelWidth">
+            <el-input v-model="form.post" autocomplete="off"></el-input>
+        </el-form-item>
+        <el-form-item label="月薪" :label-width="formLabelWidth" prop="salaryRange">
+            <el-select v-model="form.salaryRange" filterable placeholder="请选择">
+             <el-option
+                  v-for="result in salaryRangeList"
+                  :key="result.id"
+                  :label="result.name"
+                  :value="result.value"
+                ></el-option>
+            </el-select>
+        </el-form-item>
+        <el-form-item label="住房状况" :label-width="formLabelWidth" prop="housingSituation">
+            <el-select v-model="form.housingSituation" filterable placeholder="请选择" >
+             <el-option
+                  v-for="result in housingSituationList"
+                  :key="result.id"
+                  :label="result.name"
+                  :value="result.value"
+                ></el-option>
+            </el-select>
+        </el-form-item>
+        <el-form-item label="婚姻状况" :label-width="formLabelWidth"  prop="maritalStatus">
+            <el-select v-model="form.maritalStatus" filterable placeholder="请选择">
+             <el-option
+                  v-for="result in maritalStatusList"
+                  :key="result.id"
+                  :label="result.name"
+                  :value="result.value"
+                ></el-option>
+            </el-select>
+        </el-form-item>
+        <el-form-item label="子女状况" :label-width="formLabelWidth" prop="childStatus">
+            <el-select v-model="form.childStatus" filterable placeholder="请选择" >
+             <el-option
+                  v-for="result in childStatusList"
+                  :key="result.id"
+                  :label="result.name"
+                  :value="result.value"
+                ></el-option>
+            </el-select>
+        </el-form-item>
+        <el-form-item label="兴趣爱好" :label-width="formLabelWidth">
+            <el-button  v-for="(item,index) in hobbyInfoList" :type="item.isMemberSelect?'danger':'info'" v-bind:key="index" class="btnHobbys" size="mini" @click="handleHobbys(item)">
+                {{item.name}}
+            </el-button>
+        </el-form-item>
+        <el-form-item label="自我评价" :label-width="formLabelWidth">
+            <el-input type="textarea" v-model="form.selfEvaluation" :rows="5"></el-input>
+        </el-form-item>
+        <h3>择偶标准</h3>
+        <el-form-item label="年龄范围" :label-width="formLabelWidth" prop="taAgeRange">
+            <el-select v-model="form.taAgeRange" filterable placeholder="请选择" >
+             <el-option
+                  v-for="result in taAgeRangeList"
+                  :key="result.id"
+                  :label="result.name"
+                  :value="result.value"
+                ></el-option>
+            </el-select>
+        </el-form-item>
+        <el-form-item label="月薪" :label-width="formLabelWidth">
+            <el-select v-model="form.taIncomeRange" filterable placeholder="请选择">
+             <el-option
+                  v-for="result in salaryRangeList"
+                  :key="result.id"
+                  :label="result.name"
+                  :value="result.value"
+                ></el-option>
+            </el-select>
+        </el-form-item>
+            <el-form-item label="学历" :label-width="formLabelWidth" prop="taEdu">
+            <el-select v-model="form.taEdu" filterable placeholder="请选择" >
+             <el-option
+                  v-for="result in eduList"
+                  :key="result.id"
+                  :label="result.name"
+                  :value="result.value"
+                ></el-option>
+            </el-select>
+        </el-form-item>
+                <el-form-item label="职业" :label-width="formLabelWidth">
+            <el-select v-model="form.taOccupation" filterable placeholder="请选择">
+             <el-option
+                  v-for="result in industryList"
+                  :key="result.id"
+                  :label="result.name"
+                  :value="result.value"
+                ></el-option>
+            </el-select>
+        </el-form-item>
+        <el-form-item label="工作地" :label-width="formLabelWidth">
+            <el-cascader
+            v-model="form.taWorkplaceArr"
+            :options="cityList"
+            >
+            </el-cascader>
+        </el-form-item>
+        <el-form-item label="其他要求" :label-width="formLabelWidth">
+            <el-input type="textarea" v-model="form.taOther" :rows="5"></el-input>
+        </el-form-item>
+        <el-form-item label="是否公开" :label-width="formLabelWidth">
+            <el-radio-group v-model="form.publicNot">
+                <el-radio :label="true">公开</el-radio>
+                <el-radio :label="false">不公开</el-radio>
+            </el-radio-group>
+        </el-form-item>
+        </el-form>
+        
+        <div class="demo-drawer__footer">
+        <el-button @click="cancelForm">取 消</el-button>
+        <el-button type="primary" @click="handleSubmit" :loading="loading">{{ loading ? '提交中 ...' : '确 定' }}</el-button>
+        </div>
+    </div>
+    </el-drawer>
+    
+</div>
+  
+  <!-- </el-dialog> -->
+</template>
+<script>
+import Constant from "@/constant";
+import memberInfoApi from "@/api/base/memberInfo";
+import dataDictionaryApi from "@/api/sys/dataDictionary";
+import hobbyInfoApi from "@/api/base/hobbyInfo";
+import cityApi from "@/api/base/city";
+import { getToken } from "@/utils/auth"; // get token from cookie
+
+export default {
+  name:"baseMemberInfoDelView",
+
+  data() {
+    return {
+      showDialog: true,
+      loading: false,
+      submitting: false,
+      formModel: {},
+      formModel2: {},
+      formLabelWidth: '80px',
+      timer: null,
+      dialog: false,
+      form: {
+        name: '',
+        region: '',
+        date1: '',
+        date2: '',
+        delivery: false,
+        type: [],
+        resource: '',
+        desc: ''
+      },
+      type:"",
+      eduList:[],
+      industryList:[],
+      salaryRangeList:[],
+      housingSituationList:[],
+      maritalStatusList:[],
+      childStatusList:[],
+      taAgeRangeList:[],
+      hobbyInfoList:[],
+      cityList:[],
+      //上传地址
+      uploadUrl: Constant.serverUrl + "/uploadPicture",
+      uploadData: {
+        subFolder: "memberInfo",
+      },
+      fileUrl: "",
+      headers: {
+        Authorization: getToken(),
+      },
+    };
+  },
+  methods: {
+    handleOpen(){
+        var self = this;
+
+        self.dialog = true;
+
+        self.businessKey = this.$route.query.businessKey;
+
+        var formData = new FormData();
+
+        formData.append("memberInfoId", self.businessKey);
+
+        hobbyInfoApi.list(formData).then((response) => {
+            var jsonData = response.data;
+            this.hobbyInfoList = jsonData.data;
+        });
+
+        (function () {
+            return memberInfoApi.view(self.businessKey);
+        })()
+        .then((response) => {
+            var jsonData = response.data;
+            self.loading = false;
+
+            if (jsonData.result) {
+            self.form = jsonData.data;
+            } else {
+            self.$message.error(jsonData.message + "");
+            }
+        })
+        .catch((error) => {
+            self.$message.error(error + "");
+        });
+        
+    },
+    handleClose() {
+      this.loading = false;
+      this.dialog = false;
+      clearTimeout(this.timer);
+    },
+    cancelForm() {
+      this.loading = false;
+      this.dialog = false;
+      clearTimeout(this.timer);
+    },
+    handleHobbys(item){
+        if(item.isMemberSelect==null){
+            item.isMemberSelect=false
+        }
+        item.isMemberSelect= !item.isMemberSelect;
+        this.$forceUpdate()
+    },
+    initData(){
+        var self = this;
+
+        self.loading = true;
+
+        self.businessKey = this.$route.query.businessKey;
+
+        self.type = this.$route.query.type;
+
+        (function () {
+            return memberInfoApi.view(self.businessKey);
+        })()
+        .then((response) => {
+            var jsonData = response.data;
+            self.loading = false;
+
+            if (jsonData.result) {
+                self.formModel = jsonData.data;
+                let faceImage = self.formModel.faceImage;
+                if (faceImage != null) {
+                    self.fileUrl = faceImage + "?x-oss-process=image/resize,m_lfit,h_200,w_200";
+                }
+                if(self.type=='edit'){
+                    self.handleOpen();
+                }
+            } else {
+            self.$message.error(jsonData.message + "");
+            }
+        })
+        .catch((error) => {
+            self.$message.error(error + "");
+        });
+    },
+    handleAvatarSuccess(res, file) {
+      var self = this;
+      self.fileUrl =
+        res.data + "?x-oss-process=image/resize,m_lfit,h_200,w_200";
+
+        (function () {
+            var id = self.formModel.id;
+
+            self.formModel.faceImage = res.data
+
+            return memberInfoApi.updateFaceImg(self.formModel);
+            
+          })().then(function (response) {
+            var jsonData = response.data;
+
+            if (jsonData.result) {
+              self.$message({
+                message: "修改照片成功!",
+                type: "success",
+              });
+            } else {
+              self.$message({
+                message: jsonData.message + "",
+                type: "warning",
+              });
+            }
+          });
+    },
+    handleCheck(checked){
+        var self = this;
+
+        var checkText="";
+
+        if(checked){
+            checkText="审核通过?";
+        }
+        else{
+            checkText="审核不通过?";
+        }
+
+        self
+        .$confirm(checkText, "提示", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning",
+        })
+        .then(() => {
+            (function () {
+                var id = self.formModel.id;
+
+                if(checked){
+                    self.formModel.status ="1";
+                }
+                else{
+                    self.formModel.status="2";
+                }
+
+                return memberInfoApi.updateFaceImg(self.formModel);
+                
+            })().then(function (response) {
+                var jsonData = response.data;
+
+                if (jsonData.result) {
+                self.$message({
+                    message: "保存成功!",
+                    type: "success",
+                });
+
+                    self.$refs.drawer.closeDrawer();
+                    self.initData();
+                } else {
+                self.$message({
+                    message: jsonData.message + "",
+                    type: "warning",
+                });
+                }
+            });
+        })
+    },
+    handleActivation(){
+      var self = this;
+
+      var id = self.formModel.id;
+
+      self
+        .$confirm("是否确认恢复?", "提示", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning",
+        })
+        .then(() => {
+          memberInfoApi.activation(id).then(function (response) {
+            var jsonData = response.data;
+
+            if (jsonData.result) {
+              
+              self.closeIndexPage();
+
+            }
+          });
+        });
+
+    },
+    closeIndexPage(){
+        //删除当前页面
+        this.$store.dispatch('tagsView/delView', {
+            path: '/base/memberInfoDel/view',
+            name: 'baseMemberInfoDelView'
+        })
+        .then(({ visitedViews }) => {
+            //刷新列表页面
+            if(window["listPage"]!=null){
+                window["listPage"].refreshList();
+            }
+
+            this.$router.push({
+                path: "/base/memberInfoDel/list"
+            })
+        });
+    },
+    beforeAvatarUpload(file) {
+      const isJPG = file.type === "image/jpeg";
+      const isLt2M = file.size / 1024 / 1024 < 2;
+
+      if (!isJPG) {
+        this.$message.error("上传头像图片只能是 JPG 格式!");
+      }
+      if (!isLt2M) {
+        this.$message.error("上传头像图片大小不能超过 2MB!");
+      }
+      return isJPG && isLt2M;
+    },
+    handleSubmit() {
+      var self = this;
+
+      this.$refs["form"].validate((valid) => {
+        if (valid) {
+          (function () {
+            var id = self.formModel.id;
+
+            self.form.hobbyInfoList=self.hobbyInfoList;
+
+            return memberInfoApi.update(self.form);
+            
+          })().then(function (response) {
+            var jsonData = response.data;
+
+            if (jsonData.result) {
+              self.$message({
+                message: "保存成功!",
+                type: "success",
+              });
+
+                self.$refs.drawer.closeDrawer();
+                self.initData();
+            } else {
+              self.$message({
+                message: jsonData.message + "",
+                type: "warning",
+              });
+            }
+          });
+        }
+      });
+    },
+  },
+  created() {
+    var self = this;
+
+    dataDictionaryApi
+      .findByCatalogName({
+        catalogName: "学历",
+      })
+      .then((response) => {
+        var jsonData = response.data;
+        this.eduList = jsonData.data;
+      });
+
+    dataDictionaryApi
+      .findByCatalogName({
+        catalogName: "行业",
+      })
+      .then((response) => {
+        var jsonData = response.data;
+        this.industryList = jsonData.data;
+      });
+
+    dataDictionaryApi
+      .findByCatalogName({
+        catalogName: "月薪",
+      })
+      .then((response) => {
+        var jsonData = response.data;
+        this.salaryRangeList = jsonData.data;
+      });
+
+    dataDictionaryApi
+      .findByCatalogName({
+        catalogName: "住房情况",
+      })
+      .then((response) => {
+        var jsonData = response.data;
+        this.housingSituationList = jsonData.data;
+      });
+
+    dataDictionaryApi
+      .findByCatalogName({
+        catalogName: "婚姻情况",
+      })
+      .then((response) => {
+        var jsonData = response.data;
+        this.maritalStatusList = jsonData.data;
+      });
+
+    dataDictionaryApi
+      .findByCatalogName({
+        catalogName: "子女情况",
+      })
+      .then((response) => {
+        var jsonData = response.data;
+        this.childStatusList = jsonData.data;
+      });
+
+    dataDictionaryApi
+      .findByCatalogName({
+        catalogName: "年龄范围",
+      })
+      .then((response) => {
+        var jsonData = response.data;
+        this.taAgeRangeList = jsonData.data;
+      });
+
+    cityApi.treeList().then((response) => {
+        var jsonData = response.data;
+        this.cityList = jsonData.data;
+    });
+
+
+
+    //self.loadTree();
+  },
+  mounted: function () {
+    this.initData();
+  },
+};
+</script>
+
+<style rel="stylesheet/scss" lang="scss" scoped>
+.user-panel {
+  margin: 10px auto;
+}
+
+.el-breadcrumb {
+  margin: 10px;
+  line-height: 20px;
+}
+
+.el-divider {
+  margin: 5px 0;
+}
+
+.demo-form-inline {
+  margin-left: 10px;
+  text-align: left;
+}
+
+.button-group {
+  margin-left: 10px;
+  text-align: left;
+}
+.span-realName{
+    font-weight: bold;
+    font-size: 24px;
+    line-height: 40px;
+}
+
+  .el-aside {
+    margin:0px 0px 0px 20px
+  }
+  .el-row{
+      line-height: 30px;
+  }
+  .row-bg {
+    padding: 10px 0;
+  }
+  .user-panel .el-form-item{
+      margin-bottom: 0px;
+      
+      .el-form-item__label{
+        font-size: 12px;
+      }
+  }
+
+  .grid-content-span{
+    font-weight: bold;
+  }
+  .right-main{
+      text-align: center;
+      margin-top: 30px;
+  }
+  .right-button-group{
+      margin-top: 90px;
+      text-align: center;
+  }
+  .el-tag{
+      margin-left: 20px;
+  }
+  .right-button-group-row{
+      margin-bottom: 10px;
+  }
+  .hobby-div{
+      margin-bottom: 50px;
+  }
+  .p-content{
+      line-height: 30px;
+      font-size: 12px;
+  }
+
+  .demo-drawer__content{
+      margin:40px;
+  }
+  .demo-drawer__footer{
+      text-align: right;
+  }
+  .btnHobbys{
+      margin: 5px;
+  }
+
+</style>
+<style rel="stylesheet/scss" lang="scss">
+  .el-drawer.rtl{
+      overflow: scroll;
+  }
+</style>

+ 249 - 0
src/views/base/mobileBannerInfo-detail.vue

@@ -0,0 +1,249 @@
+
+<template>
+  <el-dialog
+    :visible.sync="showDialog"
+    :title="title"
+    :modal-append-to-body="true"
+    append-to-body
+    style="text-align:left;"
+    width="500px"
+    :close-on-click-modal="false"
+    @close="closeDialog"
+  >
+    <div class="user-panel" v-loading="loading">
+      <el-form ref="form" :model="formModel" inline :rules="ruleValidate" :label-width="'130px'">
+        <el-form-item label="幻灯片标题" prop="name">
+          <el-input v-model="formModel.name" placeholder="请输入幻灯片标题" style="width:300px"></el-input>
+        </el-form-item>
+        <el-form-item label="幻灯片分类" prop="classifyArr">
+            <el-select v-model="formModel.classifyArr" multiple placeholder="请选择" clearable style="width:300px;">
+                <el-option
+                  v-for="item in newsTypeList"
+                  :key="item.shortName"
+                  :label="item.shortName"
+                  :value="item.shortName">
+                </el-option>
+            </el-select>
+        </el-form-item>
+        <el-form-item label="幻灯片链接地址" prop="linkUrl">
+          <el-input v-model="formModel.linkUrl" placeholder="请输入幻灯片链接地址" style="width:300px"></el-input>
+        </el-form-item>
+        <el-form-item label="幻灯片图片" prop="picUrl">
+            <el-upload
+                class="avatar-uploader"
+                name="photoFile"
+                :action="uploadUrl"
+                :show-file-list="false"
+                :headers="headers"
+                :data="uploadData"
+                :on-success="handleAvatarSuccess"
+                :before-upload="beforeAvatarUpload"
+              >
+                <img v-if="fileUrl" :src="fileUrl" class="avatar" />
+                <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+              </el-upload>
+        </el-form-item>
+      </el-form>
+    </div>
+    <span slot="footer" class="dialog-footer">
+      <el-button @click="closeDialog">取 消</el-button>
+      <el-button type="primary" @click="handleSubmit" :loading="submitting">确 定</el-button>
+    </span>
+  </el-dialog>
+</template>
+<script>
+import Constant from "@/constant";
+import mobileBannerInfoApi from "@/api/base/mobileBannerInfo";
+import newsTypeApi from "@/api/base/newsType";
+import { getToken } from "@/utils/auth"; // get token from cookie
+
+export default {
+  props: ["businessKey", "title"],
+  computed: {
+      ruleValidate (){
+        var rules = null;
+        rules = {
+            name: [
+                { required: true, message: "幻灯片标题不能为空", trigger: "blur" }
+            ],
+            classify: [
+                { required: true, message: "幻灯片分类不能为空", trigger: "blur" }
+            ],
+        };
+        return rules;
+      }
+  },
+  data() {
+    return {
+      showDialog: true,
+      loading: false,
+      submitting: false,
+      formModel: {
+        id:"",
+        name:"",
+        parentId:"",
+        classifyArr:"",
+      },
+      templateList: [],
+      defaultPriceList:[],
+      chargingStationResult:[],
+      newsTypeList:[],
+      treeData: [],
+      props: {
+        // 配置项(必选)
+        value: "id",
+        label: "name",
+        children: "children"
+      },
+      //上传地址
+      uploadUrl: Constant.serverUrl + "/uploadPicture",
+      uploadData: {
+        subFolder: "mobileBannerInfo",
+      },
+      fileUrl: "",
+      headers: {
+        Authorization: getToken(),
+      },
+    };
+  },
+  methods: {
+    closeDialog() {
+      this.$emit("close", false);
+    },
+    handleAvatarSuccess(res, file) {
+      var self = this;
+      self.formModel.picUrl = res.data;
+      self.fileUrl =
+        res.data + "?x-oss-process=image/resize,m_lfit,h_300,w_300";
+    },
+    beforeAvatarUpload(file) {
+      const isJPG = file.type === "image/jpeg";
+      const isLt2M = file.size / 1024 / 1024 < 2;
+
+      if (!isJPG) {
+        this.$message.error("上传头像图片只能是 JPG 格式!");
+      }
+      if (!isLt2M) {
+        this.$message.error("上传头像图片大小不能超过 2MB!");
+      }
+      return isJPG && isLt2M;
+    },
+    handleSubmit() {
+      var self = this;
+
+      this.$refs["form"].validate((valid) => {
+        if (valid) {
+          (function () {
+            var id = self.formModel.id;
+
+            if (id == null || id.length == 0) {
+              return mobileBannerInfoApi.add(self.formModel);
+            } else {
+              return mobileBannerInfoApi.update(self.formModel);
+            }
+          })().then(function (response) {
+            var jsonData = response.data;
+
+            if (jsonData.result) {
+              self.$message({
+                message: "保存成功!",
+                type: "success",
+              });
+
+              self.$emit("close", true);
+            } else {
+              self.$message({
+                message: jsonData.message + "",
+                type: "warning",
+              });
+
+              //self.$emit("close", false);
+            }
+          });
+        }
+      });
+    },
+  },
+  created() {
+    var self = this;
+
+    newsTypeApi.list().then(function (response) {
+      var jsonData = response.data;
+      if (jsonData.result) {
+        if (jsonData.data != null && jsonData.data != "") {
+          self.newsTypeList = jsonData.data;
+        }
+      }
+    });
+
+    //self.loadTree();
+  },
+  mounted: function () {
+    var self = this;
+
+    (function () {
+      if (self.businessKey.length == 0) {
+        return mobileBannerInfoApi.create();
+      } else {
+        return mobileBannerInfoApi.edit(self.businessKey);
+      }
+    })()
+      .then((response) => {
+        var jsonData = response.data;
+        self.loading = false;
+
+        if (jsonData.result) {
+          self.formModel = jsonData.data;
+          let picUrl = self.formModel.picUrl;
+          if (picUrl != null) {
+            self.fileUrl = picUrl 
+          }
+        } else {
+          self.$message.error(jsonData.message + "");
+        }
+      })
+      .catch((error) => {
+        self.$message.error(error + "");
+      });
+  },
+};
+</script>
+
+<style rel="stylesheet/scss" lang="scss" scoped>
+.user-panel {
+  margin: 10px auto;
+}
+.input-form-main{
+    width: 300px;
+}
+.link-span{
+    margin-right: 20px;
+}
+.el-form-item{
+    margin-bottom: 25px;
+}
+
+ .avatar-uploader .el-upload {
+    border: 1px dashed #d9d9d9;
+    border-radius: 6px;
+    cursor: pointer;
+    position: relative;
+    overflow: hidden;
+  }
+  .avatar-uploader .el-upload:hover {
+    border-color: #409EFF;
+  }
+  .avatar-uploader-icon {
+    font-size: 28px;
+    color: #8c939d;
+    width: 178px;
+    height: 178px;
+    line-height: 178px;
+    text-align: center;
+  }
+  .avatar {
+    width: 178px;
+    height: 178px;
+    display: block;
+  }
+</style>

+ 338 - 0
src/views/base/mobileBannerInfo-list.vue

@@ -0,0 +1,338 @@
+<template>
+  <div style="padding-left: 5px">
+    <el-breadcrumb separator=">">
+      <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
+      <el-breadcrumb-item>
+        <a href="#">基础信息管理</a>
+      </el-breadcrumb-item>
+      <el-breadcrumb-item>
+        <a href="/mobileBannerInfo">移动端广告栏管理</a>
+      </el-breadcrumb-item>
+    </el-breadcrumb>
+    <el-divider></el-divider>
+    <el-form
+      ref="queryForm"
+      :model="queryModel"
+      inline
+      class="demo-form-inline"
+    >
+      <el-form-item label="幻灯片标题" prop="name">
+        <el-input type="text" size="mini" v-model="queryModel.name"></el-input>
+      </el-form-item>
+      <el-form-item>
+        <el-button
+          type="primary"
+          size="mini"
+          icon="ios-search"
+          @click="changePage(1)"
+          :loading="loading"
+          >查询</el-button
+        >&nbsp;
+        <el-button
+          type="info"
+          size="mini"
+          style="margin-left: 8px"
+          @click="handleReset('queryForm')"
+          >重置</el-button
+        >&nbsp;
+      </el-form-item>
+    </el-form>
+    <el-divider></el-divider>
+    <el-row class="button-group">
+      <el-button
+        type="primary"
+        size="small"
+        plain
+        icon="el-icon-circle-plus"
+        @click="handleAdd"
+        >新增</el-button
+      >
+      <el-button
+        type="primary"
+        size="small"
+        plain
+        icon="el-icon-remove"
+        :disabled="multipleSelection.length == 0"
+        @click="handleBatchDelete"
+        >删除选中项</el-button
+      >
+    </el-row>
+    <el-table
+      ref="formTable"
+      :data="tableData"
+      v-loading="loading"
+      stripe
+      :height="tableHeight"
+      @sort-change="sortChange"
+      @selection-change="handleSelectionChange"
+    >
+      <el-table-column type="selection" width="55"></el-table-column>
+      <el-table-column
+        prop="name"
+        label="幻灯片标题"
+        width="200"
+      ></el-table-column>
+      <el-table-column
+        prop="classify"
+        label="幻灯片分类"
+        width="200"
+      ></el-table-column>
+      <el-table-column
+        prop="linkUrl"
+        label="幻灯片链接地址"
+        width="200"
+      ></el-table-column>
+      <el-table-column    prop="picUrl"   label="幻灯片图片"  width="150">
+          <template slot-scope="{ row }">
+              <el-image
+                style="width: 50px; height: 50px"
+                :src="row.picUrl"
+                fit="fit"></el-image>
+          </template>
+      </el-table-column>
+      <el-table-column prop="enabled" label="审核状态">
+          <template slot-scope="{ row }">
+              <span v-if="row.enabled" style="color:green">已审核</span>
+              <span v-else style="color:red">未审核</span>
+          </template>
+      </el-table-column>
+      <el-table-column
+        prop="createTime"
+        label="创建时间"
+         width="150"
+      ></el-table-column>
+      <el-table-column label="操作" fixed="right">
+        <template slot-scope="{ row }">
+          <el-row>
+            <el-col>
+              <el-link
+                type="primary"
+                :underline="false"
+                @click="handleEdit(row)"
+                >编辑</el-link
+              >-
+              <el-link
+                type="danger"
+                :underline="false"
+                @click="handleDelete(row)"
+                >删除</el-link>
+            </el-col>
+          </el-row>
+        </template>
+      </el-table-column>
+    </el-table>
+    <el-pagination
+      :current-page.sync="pageIndex"
+      :total="totalElements"
+      :page-sizes="pageSizeList"
+      @current-change="changePage"
+      @size-change="pageSizeChange"
+      layout="total, sizes, prev, pager, next, jumper"
+    ></el-pagination>
+    <mobileBannerInfo-detail
+      v-if="showModal"
+      :businessKey="businessKey"
+      :title="modalTitle"
+      @close="onDetailModalClose"
+    ></mobileBannerInfo-detail>
+  </div>
+</template>
+<script>
+
+import mobileBannerInfoDetail from "./mobileBannerInfo-detail";
+import mobileBannerInfoApi from "@/api/base/mobileBannerInfo";
+
+export default {
+  name: "BaseMobileBannerInfoList",
+  data() {
+    var self = this;
+    return {
+      queryModel: {
+        name: "",
+      },
+      loading: false,
+      tableData: [],
+      treeData: [],
+      pageIndex: 1,
+      pageSize: 10,
+      totalPages: 0,
+      totalElements: 0,
+      field: "",
+      direction: "",
+      pageSizeList: [10, 20, 30],
+      multipleSelection: [],
+      showModal: false,
+      modalTitle: "",
+      businessKey: "",
+      tableHeight: 300,
+      showDeviceModal: false,
+      companyId: "",
+      qrCode: "",
+      companyResult: [],
+      props: {
+        // 配置项(必选)
+        value: "id",
+        label: "name",
+        children: "children",
+      },
+      batchImportVisible: false,
+      batchImportFileList: [],
+      xlsLoading: false,
+      sceneData: [],
+      typeData: [],
+      deviceRelationTitle: "",
+      showIconModal: false,
+      iconModalTitle: "",
+    };
+  },
+  created() {
+
+    this.changePage(1);
+  },
+  methods: {
+    changePage(pageIndex) {
+      var self = this;
+
+      self.loading = true;
+
+      self.pageIndex = pageIndex;
+      var formData = new FormData();
+
+      formData.append("pageIndex", self.pageIndex);
+      formData.append("pageSize", self.pageSize);
+
+      formData.append("name", self.queryModel.name);
+
+      mobileBannerInfoApi
+        .pageList(formData)
+        .then(function (response) {
+          self.loading = false;
+
+          var jsonData = response.data.data;
+
+          self.tableData = jsonData.data;
+          self.totalPages = jsonData.totalPages;
+          self.totalElements = jsonData.recordsTotal;
+          //45为分页栏的高度
+          //页面高度-列表上面的高度-分页栏高度
+          self.tableHeight =
+            window.innerHeight - self.$refs.formTable.$el.offsetTop - 100;
+        })
+        .catch((error) => {
+          self.loading = false;
+          // self.$message.error(error + "");
+        });
+    },
+    pageSizeChange(pageSize) {
+      this.pageSize = pageSize;
+    },
+    sortChange(data) {
+      this.field = data.column.field;
+      this.direction = data.order == "ascending" ? "asc" : "desc";
+
+      this.changePage(this.pageIndex);
+    },
+    handleSelectionChange(val) {
+      this.multipleSelection = val;
+    },
+    handleReset(name) {
+      this.$refs[name].resetFields();
+    },
+    handleAdd() {
+      this.modalTitle = "新增";
+      this.businessKey = "";
+      this.showModal = true;
+    },
+    handleEdit(record) {
+      this.modalTitle = "编辑";
+      this.businessKey = record.id;
+      this.showModal = true;
+    },
+    handleDelete(record) {
+      var self = this;
+
+      self
+        .$confirm("是否确认删除?", "提示", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning",
+        })
+        .then(() => {
+          mobileBannerInfoApi.remove(record.id).then(function (response) {
+            var jsonData = response.data;
+
+            if (jsonData.result) {
+              // var index = self.tableData.indexOf(record);
+              // self.tableData.splice(index, 1);
+              self.changePage(self.pageIndex);
+
+              self.$message({
+                type: "success",
+                message: "删除成功!",
+              });
+            }
+          });
+        });
+    },
+    handleBatchDelete() {
+      var self = this;
+
+      var idList = this.multipleSelection.map((record) => {
+        return record.id;
+      });
+
+      this.$confirm("是否确认删除选中项?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      }).then(() => {
+        mobileBannerInfoApi.batchRemove(idList).then(function (response) {
+          var jsonData = response.data;
+
+          if (jsonData.result) {
+            self.changePage(self.pageIndex);
+
+            self.$message({
+              type: "success",
+              message: "删除成功!",
+            });
+          }
+        });
+      });
+    },
+    onDetailModalClose(refreshed) {
+      //保存成功后回调
+      this.showModal = false;
+      this.showDeviceModal = false;
+
+      if (refreshed) {
+        this.changePage(this.pageIndex);
+      }
+    },
+  },
+  mounted: function () {},
+  components: {
+    "mobileBannerInfo-detail": mobileBannerInfoDetail,
+  },
+};
+</script>
+<style lang="scss" scoped>
+.el-breadcrumb {
+  margin: 10px;
+  line-height: 20px;
+}
+
+.el-divider {
+  margin: 5px 0;
+}
+
+.demo-form-inline {
+  margin-left: 10px;
+  text-align: left;
+}
+
+.button-group {
+  margin-left: 10px;
+  text-align: left;
+}
+</style>

+ 9 - 0
src/views/base/newsType-detail.vue

@@ -18,6 +18,12 @@
         <el-form-item label="类型简称" prop="shortName">
           <el-input v-model="formModel.shortName" placeholder="请输入类型简称" style="width:300px"></el-input>
         </el-form-item>
+        <el-form-item label="是否显示" prop="isShow">
+          <el-radio-group v-model="formModel.isShow">
+              <el-radio :label="true">是</el-radio>
+              <el-radio :label="false">否</el-radio>
+          </el-radio-group>
+        </el-form-item>
       </el-form>
     </div>
     <span slot="footer" class="dialog-footer">
@@ -41,6 +47,9 @@ export default {
             shortName: [
                 { required: true, message: "类型简称不能为空", trigger: "blur" }
             ],
+            isShow: [
+                { required: true, message: "是否显示不能为空", trigger: "blur" }
+            ],
         };
         return rules;
       }

+ 6 - 0
src/views/base/newsType-list.vue

@@ -77,6 +77,12 @@
         label="类型简称"
         width="200"
       ></el-table-column>
+      <el-table-column  prop="isShow"  label="是否显示">
+        <template slot-scope="{ row }">
+          <span v-if="row.isShow" style="color:green">是</span>
+          <span v-else>否</span>
+        </template>
+      </el-table-column>
       <el-table-column
         prop="createTime"
         label="创建时间"