Browse Source

门户管理

gks 1 year ago
parent
commit
89a0df43da
3 changed files with 323 additions and 114 deletions
  1. 10 0
      src/api/portal/COMPANYUSER/COMPANYUSER.js
  2. 312 113
      src/views/COMPANYUSER/index.vue
  3. 1 1
      src/views/GATHER/index.vue

+ 10 - 0
src/api/portal/COMPANYUSER/COMPANYUSER.js

@@ -51,3 +51,13 @@ export function delCOMPANYUSER(id) {
     method: 'get'
   })
 }
+
+// 获取服务标签
+export function getMark(id) {
+  return request({
+    url: '/MARK/listAll',
+    method: 'get'
+  })
+}
+
+

+ 312 - 113
src/views/COMPANYUSER/index.vue

@@ -1,37 +1,84 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch">
+    <el-form
+      :model="queryParams"
+      ref="queryForm"
+      :inline="true"
+      v-show="showSearch"
+    >
       <el-form-item label="姓名" prop="nickName">
-        <el-input v-model="queryParams.nickName" placeholder="请输入姓名"></el-input>
+        <el-input
+          v-model="queryParams.nickName"
+          placeholder="请输入姓名"
+        ></el-input>
       </el-form-item>
       <el-form-item label="用户名" prop="userName">
-        <el-input v-model="queryParams.userName" placeholder="请输入用户名"></el-input>
+        <el-input
+          v-model="queryParams.userName"
+          placeholder="请输入用户名"
+        ></el-input>
       </el-form-item>
       <el-form-item label="类型" prop="type">
-        <el-select v-model="queryParams.type" placeholder="请选择类型" clearable filterable>
-          <el-option v-for="dict in typeList" :key="dict.value + 'typeList'" :label="dict.label" :value="dict.value" />
+        <el-select
+          v-model="queryParams.type"
+          placeholder="请选择类型"
+          clearable
+          filterable
+        >
+          <el-option
+            v-for="dict in typeList"
+            :key="dict.value + 'typeList'"
+            :label="dict.label"
+            :value="dict.value"
+          />
         </el-select>
       </el-form-item>
       <el-form-item>
-        <el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
+        <el-button type="primary" icon="el-icon-search" @click="handleQuery"
+          >搜索</el-button
+        >
         <el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
       </el-form-item>
     </el-form>
 
     <el-row :gutter="10" class="mb8">
       <el-col :span="1.5">
-        <el-button type="success" icon="el-icon-search" :disabled="single" @click="handleView" v-hasPermi="['business:COMPANYUSER:query']">查看</el-button>
+        <el-button
+          type="success"
+          icon="el-icon-search"
+          :disabled="single"
+          @click="handleView"
+          v-hasPermi="['business:COMPANYUSER:query']"
+          >查看</el-button
+        >
       </el-col>
       <el-col :span="1.5">
-        <el-button type="success" icon="el-icon-edit" :disabled="single" @click="handleUpdate" v-hasPermi="['business:COMPANYUSER:edit']">修改</el-button>
+        <el-button
+          type="success"
+          icon="el-icon-edit"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['business:COMPANYUSER:edit']"
+          >修改</el-button
+        >
       </el-col>
       <el-col :span="1.5">
-        <el-button type="danger" icon="el-icon-delete" :disabled="multiple" @click="handleDelete" v-hasPermi="['business:COMPANYUSER:remove']">删除</el-button>
+        <el-button
+          type="danger"
+          icon="el-icon-delete"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['business:COMPANYUSER:remove']"
+          >删除</el-button
+        >
       </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+      <right-toolbar
+        :showSearch.sync="showSearch"
+        @queryTable="getList"
+      ></right-toolbar>
     </el-row>
 
-    <el-table  :data="COMPANYUSERList" @selection-change="handleSelectionChange">
+    <el-table :data="COMPANYUSERList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
       <el-table-column label="姓名" align="left" prop="nickName">
         <template slot-scope="scope">
@@ -69,55 +116,119 @@
           {{ scope.row.research }}
         </template>
       </el-table-column>
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+      <el-table-column
+        label="操作"
+        align="center"
+        class-name="small-padding fixed-width"
+      >
         <template slot-scope="scope">
-          <el-button size="mini" type="text" icon="el-icon-search" @click="handleView(scope.row)" v-hasPermi="['business:COMPANYUSER:query']">查看</el-button>
-          <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['business:COMPANYUSER:edit']">修改</el-button>
-          <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['business:COMPANYUSER:remove']">删除</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-search"
+            @click="handleView(scope.row)"
+            v-hasPermi="['business:COMPANYUSER:query']"
+            >查看</el-button
+          >
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['business:COMPANYUSER:edit']"
+            >修改</el-button
+          >
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['business:COMPANYUSER:remove']"
+            >删除</el-button
+          >
         </template>
       </el-table-column>
     </el-table>
 
-    <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" />
+    <pagination
+      v-show="total > 0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
 
     <!-- 添加或修改门户用户对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="850px" :close-on-click-modal="false" append-to-body>
+    <el-dialog
+      :title="title"
+      :visible.sync="open"
+      width="850px"
+      :close-on-click-modal="false"
+      append-to-body
+    >
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
         <el-row>
           <el-col :span="12">
             <el-form-item label="用户类型" prop="type">
-              <el-select v-model="form.type" placeholder="请选择类型" :disabled="isViewMode" filterable style="width: 100%">
-                <el-option v-for="dict in typeList" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
+              <el-select
+                v-model="form.type"
+                placeholder="请选择类型"
+                :disabled="isViewMode"
+                filterable
+                style="width: 100%"
+              >
+                <el-option
+                  v-for="dict in typeList"
+                  :key="dict.value"
+                  :label="dict.label"
+                  :value="dict.value"
+                ></el-option>
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="用户姓名" prop="nickName">
-              <el-input v-model="form.nickName" placeholder="请输入姓名" :disabled="isViewMode"></el-input>
+              <el-input
+                v-model="form.nickName"
+                placeholder="请输入姓名"
+                :disabled="isViewMode"
+              ></el-input>
             </el-form-item>
           </el-col>
         </el-row>
         <el-row>
           <el-col :span="12">
             <el-form-item label="学历" prop="education">
-              <el-select v-model="form.education" placeholder="请选择" :disabled="isViewMode" style="width: 100%">
+              <el-select
+                v-model="form.education"
+                placeholder="请选择"
+                :disabled="isViewMode"
+                style="width: 100%"
+              >
                 <el-option
                   v-for="item in options1"
                   :key="item.value"
                   :label="item.label"
-                  :value="item.value">
+                  :value="item.value"
+                >
                 </el-option>
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="工作经验" prop="experience">
-              <el-select v-model="form.experience" placeholder="请选择" :disabled="isViewMode" style="width: 100%">
+              <el-select
+                v-model="form.experience"
+                placeholder="请选择"
+                :disabled="isViewMode"
+                style="width: 100%"
+              >
                 <el-option
                   v-for="item in options2"
                   :key="item.value"
                   :label="item.label"
-                  :value="item.value">
+                  :value="item.value"
+                >
                 </el-option>
               </el-select>
             </el-form-item>
@@ -126,7 +237,12 @@
         <el-row>
           <el-col :span="12">
             <el-form-item label="性别" prop="gender">
-              <el-select v-model="form.gender" placeholder="请选择" :disabled="isViewMode" style="width: 100%">
+              <el-select
+                v-model="form.gender"
+                placeholder="请选择"
+                :disabled="isViewMode"
+                style="width: 100%"
+              >
                 <el-option
                   v-for="item in options3"
                   :key="item.value"
@@ -139,7 +255,12 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="民族" prop="nation">
-              <el-select v-model="form.nation" placeholder="请选择" :disabled="isViewMode" style="width: 100%">
+              <el-select
+                v-model="form.nation"
+                placeholder="请选择"
+                :disabled="isViewMode"
+                style="width: 100%"
+              >
                 <el-option
                   v-for="item in nationOptions"
                   :key="item.id"
@@ -154,18 +275,26 @@
         <el-row>
           <el-col :span="12">
             <el-form-item label="专业领域" prop="field">
-              <el-input v-model="form.field" placeholder="请输入专业领域" :disabled="isViewMode"></el-input>
+              <el-input
+                v-model="form.field"
+                placeholder="请输入专业领域"
+                :disabled="isViewMode"
+              ></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="研究方向" prop="research">
-              <el-input v-model="form.research" placeholder="请输入研究方向" :disabled="isViewMode"></el-input>
+              <el-input
+                v-model="form.research"
+                placeholder="请输入研究方向"
+                :disabled="isViewMode"
+              ></el-input>
             </el-form-item>
           </el-col>
         </el-row>
         <el-row>
           <el-col :span="12">
-            <el-form-item label="出生日期" prop="birthDate" >
+            <el-form-item label="出生日期" prop="birthDate">
               <el-date-picker
                 style="width: 100%"
                 v-model="form.birthDate"
@@ -179,7 +308,25 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="服务项目" prop="servicesAvailable">
-              <el-input v-model="form.servicesAvailable" placeholder="请输入服务项目" :disabled="isViewMode"></el-input>
+              <!-- <el-input
+                v-model="form.servicesAvailable"
+                placeholder="请输入服务项目"
+                :disabled="isViewMode"
+              ></el-input> -->
+
+              <el-select
+                v-model="form.servicesAvailable"
+                placeholder="请选择服务项目"
+                style="width: 100%"
+              >
+                <el-option
+                  v-for="item in markList"
+                  :label="item.mark"
+                  :key="item.dictCode"
+                  :value="item.mark"
+                >
+                </el-option>
+              </el-select>
             </el-form-item>
           </el-col>
         </el-row>
@@ -190,10 +337,11 @@
                 v-if="form.credentials"
                 :fit="'contain'"
                 style="
-                width: 20%;
-                margin-top: 10px;
-                border-radius: 5px;
-                margin-bottom: -15px;"
+                  width: 20%;
+                  margin-top: 10px;
+                  border-radius: 5px;
+                  margin-bottom: -15px;
+                "
                 :z-index="500"
                 :src="this.baseURL + form.diploma"
               ></el-image>
@@ -205,10 +353,11 @@
                 v-if="form.credentials"
                 :fit="'contain'"
                 style="
-                width: 20%;
-                margin-top: 10px;
-                border-radius: 5px;
-                margin-bottom: -15px;"
+                  width: 20%;
+                  margin-top: 10px;
+                  border-radius: 5px;
+                  margin-bottom: -15px;
+                "
                 :z-index="500"
                 :src="this.baseURL + form.credentials"
               ></el-image>
@@ -223,7 +372,10 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="资格证书" prop="credentials">
-              <cropper v-model="form.credentials" :fixed_number="[3, 4]"></cropper>
+              <cropper
+                v-model="form.credentials"
+                :fixed_number="[3, 4]"
+              ></cropper>
             </el-form-item>
           </el-col>
         </el-row>
@@ -237,21 +389,30 @@
 </template>
 
 <script>
-import { listCOMPANYUSER, getCOMPANYUSER, delCOMPANYUSER, addCOMPANYUSER, updateCOMPANYUSER } from '@/api/portal/COMPANYUSER/COMPANYUSER.js';
-import { nation as nationOptions } from '@/utils/nation'; // 导入数组
-
+import {
+  listCOMPANYUSER,
+  getCOMPANYUSER,
+  delCOMPANYUSER,
+  addCOMPANYUSER,
+  updateCOMPANYUSER,
+  getMark,
+} from "@/api/portal/COMPANYUSER/COMPANYUSER.js";
+import { nation as nationOptions } from "@/utils/nation"; // 导入数组
 
 export default {
-  name: 'COMPANYUSER',
+  name: "COMPANYUSER",
   computed: {
-    nationOptions() {return nationOptions;},
+    nationOptions() {
+      return nationOptions;
+    },
   },
   data() {
     return {
+      markList: [],
       isViewMode: false,
       typeList: [
-        { label: '普通用户', value: '1' },
-        { label: '专家', value: '2' }
+        { label: "普通用户", value: "1" },
+        { label: "专家", value: "2" },
       ],
       // 根路径
       baseURL: process.env.VUE_APP_BASE_API,
@@ -270,7 +431,7 @@ export default {
       // 门户用户表格数据
       COMPANYUSERList: [],
       // 弹出层标题
-      title: '',
+      title: "",
       // 是否显示弹出层
       open: false,
       // 查询参数
@@ -293,67 +454,105 @@ export default {
         education: null,
         experience: null,
         field: null,
-        research: null
+        research: null,
       },
       // 表单参数
       form: {},
       // 表单校验
       rules: {
-        id: [{ required: true, message: '$comment不能为空', trigger: 'blur' }],
-        delFlag: [{ required: true, message: '删除标识不能为空', trigger: 'blur' }],
-        nickName: [{ required: true, message: '姓名不能为空', trigger: 'blur' }],
-        userName: [{ required: true, message: '用户名不能为空', trigger: 'blur' }],
-        password: [{ required: true, message: '密码不能为空', trigger: 'blur' }],
-        loginIp: [{ required: true, message: '登录ip不能为空', trigger: 'blur' }],
-        loginDate: [{ required: true, message: '登录日期不能为空', trigger: 'blur' }],
-        type: [{ required: true, message: '类型不能为空', trigger: 'change' }],
-        baseInfo: [{ required: true, message: '基本信息不能为空', trigger: 'blur' }],
-        education: [{ required: true, message: '学历不能为空', trigger: 'blur' }],
-        experience: [{ required: true, message: '工作经验不能为空', trigger: 'blur' }],
-        field: [{ required: true, message: '专业领域不能为空', trigger: 'blur' }],
-        research: [{ required: true, message: '研究方向不能为空', trigger: 'blur' }]
+        id: [{ required: true, message: "$comment不能为空", trigger: "blur" }],
+        delFlag: [
+          { required: true, message: "删除标识不能为空", trigger: "blur" },
+        ],
+        nickName: [
+          { required: true, message: "姓名不能为空", trigger: "blur" },
+        ],
+        userName: [
+          { required: true, message: "用户名不能为空", trigger: "blur" },
+        ],
+        password: [
+          { required: true, message: "密码不能为空", trigger: "blur" },
+        ],
+        loginIp: [
+          { required: true, message: "登录ip不能为空", trigger: "blur" },
+        ],
+        loginDate: [
+          { required: true, message: "登录日期不能为空", trigger: "blur" },
+        ],
+        type: [{ required: true, message: "类型不能为空", trigger: "change" }],
+        baseInfo: [
+          { required: true, message: "基本信息不能为空", trigger: "blur" },
+        ],
+        education: [
+          { required: true, message: "学历不能为空", trigger: "blur" },
+        ],
+        experience: [
+          { required: true, message: "工作经验不能为空", trigger: "blur" },
+        ],
+        field: [
+          { required: true, message: "专业领域不能为空", trigger: "blur" },
+        ],
+        research: [
+          { required: true, message: "研究方向不能为空", trigger: "blur" },
+        ],
       },
-      options1: [{
-        value: '专科',
-        label: '专科'
-      }, {
-        value: '本科',
-        label: '本科'
-      }, {
-        value: '研究生',
-        label: '研究生'
-      }, {
-        value: '博士',
-        label: '博士'
-      }],
-      options2: [{
-        value: '5年以下',
-        label: '5年以下'
-      }, {
-        value: '5-10年',
-        label: '5-10年'
-      }, {
-        value: '10年以上',
-        label: '10年以上'
-      }],
-      options3: [{
-        value: '1',
-        label: '男'
-      }, {
-        value: '2',
-        label: '女'
-      }],
-      value: ''
+      options1: [
+        {
+          value: "专科",
+          label: "专科",
+        },
+        {
+          value: "本科",
+          label: "本科",
+        },
+        {
+          value: "研究生",
+          label: "研究生",
+        },
+        {
+          value: "博士",
+          label: "博士",
+        },
+      ],
+      options2: [
+        {
+          value: "5年以下",
+          label: "5年以下",
+        },
+        {
+          value: "5-10年",
+          label: "5-10年",
+        },
+        {
+          value: "10年以上",
+          label: "10年以上",
+        },
+      ],
+      options3: [
+        {
+          value: 1,
+          label: "男",
+        },
+        {
+          value: 2,
+          label: "女",
+        },
+      ],
+      value: "",
     };
   },
   created() {
     this.getList();
+    getMark().then((res) => {
+      this.markList = res.data;
+      console.log(res);
+    });
   },
   methods: {
     /** 查询门户用户列表 */
     getList() {
       this.loading = true;
-      listCOMPANYUSER(this.queryParams).then(response => {
+      listCOMPANYUSER(this.queryParams).then((response) => {
         this.COMPANYUSERList = response.rows;
         this.total = response.total;
         this.loading = false;
@@ -379,9 +578,9 @@ export default {
         education: null,
         experience: null,
         field: null,
-        research: null
+        research: null,
       };
-      this.resetForm('form');
+      this.resetForm("form");
     },
     /** 搜索按钮操作 */
     handleQuery() {
@@ -390,12 +589,12 @@ export default {
     },
     /** 重置按钮操作 */
     resetQuery() {
-      this.resetForm('queryForm');
+      this.resetForm("queryForm");
       this.handleQuery();
     },
     // 多选框选中数据
     handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.id);
+      this.ids = selection.map((item) => item.id);
       this.single = selection.length !== 1;
       this.multiple = !selection.length;
     },
@@ -403,42 +602,42 @@ export default {
     handleAdd() {
       this.reset();
       this.open = true;
-      this.title = '添加门户用户';
+      this.title = "添加门户用户";
     },
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset();
       const id = row.id || this.ids;
-      getCOMPANYUSER(id).then(response => {
+      getCOMPANYUSER(id).then((response) => {
         this.form = response.data;
         this.open = true;
         this.isViewMode = false;
-        this.title = '修改门户用户';
+        this.title = "修改门户用户";
       });
     },
     handleView(row) {
       this.reset();
       const id = row.id || this.ids;
-      getCOMPANYUSER(id).then(response => {
+      getCOMPANYUSER(id).then((response) => {
         this.form = response.data;
         this.isViewMode = true;
         this.open = true;
-        this.title = '查看门户用户';
+        this.title = "查看门户用户";
       });
     },
     /** 提交按钮 */
     submitForm() {
-      this.$refs['form'].validate(valid => {
+      this.$refs["form"].validate((valid) => {
         if (valid) {
           if (this.form.id != null) {
-            updateCOMPANYUSER(this.form).then(response => {
-              this.$modal.msgSuccess('修改成功');
+            updateCOMPANYUSER(this.form).then((response) => {
+              this.$modal.msgSuccess("修改成功");
               this.open = false;
               this.getList();
             });
           } else {
-            addCOMPANYUSER(this.form).then(response => {
-              this.$modal.msgSuccess('新增成功');
+            addCOMPANYUSER(this.form).then((response) => {
+              this.$modal.msgSuccess("新增成功");
               this.open = false;
               this.getList();
             });
@@ -450,26 +649,26 @@ export default {
     handleDelete(row) {
       const ids = row.id || this.ids;
       this.$modal
-        .confirm('是否确认删除这个门户用户吗?')
+        .confirm("是否确认删除这个门户用户吗?")
         .then(function () {
           return delCOMPANYUSER(ids);
         })
         .then(() => {
           this.getList();
-          this.$modal.msgSuccess('删除成功');
+          this.$modal.msgSuccess("删除成功");
         })
         .catch(() => {});
     },
     /** 导出按钮操作 */
     handleExport() {
       this.download(
-        'business/COMPANYUSER/export',
+        "business/COMPANYUSER/export",
         {
-          ...this.queryParams
+          ...this.queryParams,
         },
         `COMPANYUSER_${new Date().getTime()}.xlsx`
       );
-    }
-  }
+    },
+  },
 };
 </script>

+ 1 - 1
src/views/GATHER/index.vue

@@ -428,7 +428,7 @@
       center
       :title="title"
       :visible.sync="open"
-      width="55%"
+      width="65%"
       append-to-body
       :close-on-click-modal="false"
     >