Ver Fonte

fix(用户注册):字段调整

wanglj há 11 meses atrás
pai
commit
04760cd8f0

+ 16 - 0
src/api/instr/index.js

@@ -185,3 +185,19 @@ export function getMySelfProjectGroup(data) {
     data
   );
 }
+export function getInstrListByUser(data) {
+  return request.postRequestWithClientInfo(
+    insrtPath,
+    "TusInstrumentAppointment",
+    "GetListByUser",
+    data
+  );
+}
+// 使用人取消送样预约 
+export function userCancelAppoint(query) {
+  return request.postRequest(insrtPath, 'TusInstrumentSampleDelivery', 'UserCancel', query);
+}
+// 取消送样预约 
+export function cancelAppoint(query) {
+  return request.postRequest(insrtPath, 'TusInstrumentSampleDelivery', 'AdminCancel', query);
+}

+ 1 - 1
src/api/login.js

@@ -20,7 +20,7 @@ export function signOut(data) {
 }
 // 首页注册
 export function register(query) {
-  return request.postRequest(basePath, 'System', 'Register', query)
+  return request.postRequest(basePath, 'Personnel', 'RegisterPersonnel', query)
 }
 // 根据用户名获取用户信息
 export function getUserByUserName(data) {

+ 1 - 0
src/assets/styles/index.scss

@@ -99,6 +99,7 @@ body,
 .custom-submenu {
   border-radius: 4px;
   overflow: hidden;
+  box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1);
   .el-menu {
     padding: 0;
     border-radius: 4px;

+ 2 - 0
src/main.js

@@ -48,6 +48,8 @@ Vue.prototype.$http = axios
 
 // 图片服务器地址
 Vue.prototype.imgserver = 'http://shkjgw.shkjem.com/'
+import { parseTime } from '@/utils/ruoyi'
+Vue.prototype.parseTime = parseTime
 
 new Vue({
   router,

+ 405 - 48
src/views/PersonalCenter.vue

@@ -14,48 +14,41 @@
             </li>
           </ul>
         </div>
-        <div class="w100">
+        <div v-show="active === 0"
+             class="w100">
           <el-row class="flex mt12"
                   :gutter="12">
             <el-col :span="12">
               <el-card>
-                <div slot="header" class="header">
+                <div slot="header"
+                     class="header">
                   <h4>科研仪器</h4>
                 </div>
                 <ul class="cage-list">
-                  <li>
-                    <header>
-                      <p>人类血液成分检测仪</p>
-                      <el-tag type="primary"
-                              size="mini">状态有效</el-tag>
-                    </header>
-                    <p>剩余次数:3次 累计使用:3次</p>
-                    <p>下次预约时间:2月1日</p>
-                  </li>
-                  <li>
-                    <header>
-                      <p>人类血液成分检测仪</p>
-                      <el-tag type="primary"
-                              size="mini">状态有效</el-tag>
-                    </header>
-                   <p>剩余次数:3次 累计使用:3次</p>
-                    <p>下次预约时间:2月1日</p>
-                  </li>
-                  <li>
+                  <li v-for="v in instrList"
+                      :key="v.id">
                     <header>
-                      <p>人类血液成分检测仪</p>
-                      <el-tag type="primary"
-                              size="mini">状态有效</el-tag>
+                      <p>{{ v.instName }}</p>
+                      <el-tag v-if="v.instStatus == '10'"
+                              type="primary"
+                              size="mini">正常</el-tag>
+                      <el-tag v-else-if="v.instStatus == '20'"
+                              type="warning"
+                              size="mini">故障</el-tag>
+                      <el-tag v-else-if="v.instStatus == '30'"
+                              type="danger"
+                              size="mini">报废</el-tag>
                     </header>
-                   <p>剩余次数:3次 累计使用:3次</p>
-                    <p>下次预约时间:2月1日</p>
+                    <p>型号:{{ v.instNameEn }}</p>
+                    <p>仪器负责人:{{ v.instHeadName }}</p>
                   </li>
                 </ul>
               </el-card>
             </el-col>
             <el-col :span="12">
               <el-card header="通知公告">
-                <div slot="header" class="header">
+                <div slot="header"
+                     class="header">
                   <h4>通知公告</h4>
                 </div>
                 <div class="link-list">
@@ -76,7 +69,8 @@
                   :gutter="12">
             <el-col :span="12">
               <el-card>
-                <div slot="header" class="header">
+                <div slot="header"
+                     class="header">
                   <h4>科研平台</h4>
                 </div>
                 <ul class="platform-list">
@@ -87,7 +81,7 @@
                         <span>单价:¥100/小时</span>
                       </header>
                       <p>位置:7栋6层-分子生物平台中心-12号终端</p>
-                      <p>有效时间:1月1日  12:00 -- 1月15日 12:00</p>
+                      <p>有效时间:1月1日 12:00 -- 1月15日 12:00</p>
                     </div>
                     <div class="btn">
                       <header>
@@ -104,7 +98,7 @@
                         <span>单价:¥100/小时</span>
                       </header>
                       <p>位置:7栋6层-分子生物平台中心-12号终端</p>
-                      <p>有效时间:1月1日  12:00 -- 1月15日 12:00</p>
+                      <p>有效时间:1月1日 12:00 -- 1月15日 12:00</p>
                     </div>
                     <div class="btn">
                       <header>
@@ -117,7 +111,8 @@
                 </ul>
               </el-card>
               <el-card class="mt12">
-                <div slot="header" class="header">
+                <div slot="header"
+                     class="header">
                   <h4>笼位管理(共3个)</h4>
                 </div>
                 <ul class="cage-list">
@@ -153,11 +148,13 @@
             </el-col>
             <el-col :span="12">
               <el-card class="calendar">
-                <div slot="header" class="header">
+                <div slot="header"
+                     class="header">
                   <h4>日程安排</h4>
                 </div>
                 <FullCalendar class="fullCalendar"
-                              ref="fullCalendar" :options="calendarOptions" />
+                              ref="fullCalendar"
+                              :options="calendarOptions" />
                 <ul>
                   <li>仪器:需要进行第二期临床实验使用仪器</li>
                   <li>平台:需要使用平台查找相应的案例</li>
@@ -166,7 +163,8 @@
                 </ul>
               </el-card>
               <el-card class="mt12 cost">
-                <div slot="header" class="header">
+                <div slot="header"
+                     class="header">
                   <h4>费用统计</h4>
                 </div>
                 <div class="chart-container">
@@ -187,10 +185,11 @@
                   :gutter="12">
             <el-col :span="24">
               <el-card>
-                <div slot="header" class="header">
+                <div slot="header"
+                     class="header">
                   <h4>技术服务</h4>
                 </div>
-                <p>技术服务 - No.123456  - 李老师</p>
+                <p>技术服务 - No.123456 - 李老师</p>
                 <ul>
                   <li>11-20:委托发起</li>
                   <li>11-21:项目确定</li>
@@ -200,7 +199,7 @@
                   <li>费用结算</li>
                   <li>结果上传</li>
                 </ul>
-                <p>技术服务 - No.123456  - 李老师</p>
+                <p>技术服务 - No.123456 - 李老师</p>
                 <ul>
                   <li>11-20:委托发起</li>
                   <li>11-21:项目确定</li>
@@ -214,6 +213,124 @@
             </el-col>
           </el-row>
         </div>
+        <div v-show="active === 1"
+             class="w100">
+          <el-card>
+            <div class="toolbar-wrap">
+              <div class="switch-date">
+                <div class="btn day"
+                     :class="curSelectedDate == 'd' ? 'actived' : ''"
+                     @click="selectDate('d')">日</div>
+                <div class="btn week"
+                     :class="curSelectedDate == 'w' ? 'actived' : ''"
+                     @click="selectDate('w')">周</div>
+                <div class="btn month"
+                     :class="curSelectedDate == 'm' ? 'actived' : ''"
+                     @click="selectDate('m')">月</div>
+              </div>
+              <div class="date-wrap">
+                <div class="prev"
+                     @click="handlePrev">
+                  <el-button icon="el-icon-arrow-left"
+                             size="small"
+                             circle />
+                </div>
+                <div class="date">
+                  <el-popover :width="200"
+                              placement="top-start"
+                              trigger="click">
+                    <div slot="reference">
+                      <span class="time">{{ curTime }}</span>
+                    </div>
+                    <el-date-picker @change="getAppointList"
+                                    style="width: 100%"
+                                    v-model="curTime"
+                                    type="date"
+                                    placeholder="选择日期"
+                                    value-format="yyyy-MM-dd"
+                                    :clearable="false" />
+                  </el-popover>
+                  <span class="week">{{ WEEKS[moment(curTime).day()] }}</span>
+                </div>
+                <div class="next"
+                     @click="handleNext">
+                  <el-button icon="el-icon-arrow-right"
+                             size="small"
+                             circle />
+                </div>
+              </div>
+            </div>
+            <div class="table-wrap">
+              <el-table :data="appointData"
+                        border
+                        height="500"
+                        style="width: 962px">
+                <el-table-column type="index"
+                                 width="50"
+                                 align="center">
+                </el-table-column>
+                <el-table-column prop="instName"
+                                 label="仪器名称"
+                                 min-width="160" />
+                <el-table-column prop="projectName"
+                                 label="课题组/服务"
+                                 min-width="160">
+                  <template #default="{ row }">
+                    <span v-if="row.projectName">{{ row.projectName }}</span>
+                    <span v-else>{{ row.serviceName }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="startTime"
+                                 label="开始时间"
+                                 width="160">
+                  <template #default="{ row }">{{ parseTime(row.startTime, '{y}-{m}-{d}') }}</template>
+                </el-table-column>
+                <el-table-column prop="endTime"
+                                 label="结束时间"
+                                 width="160">
+                  <template #default="{ row }">{{ parseTime(row.endTime, '{y}-{m}-{d}') }}</template>
+                </el-table-column>
+                <el-table-column prop="userName"
+                                 label="预约人"
+                                 width="140" />
+                <el-table-column prop="userContact"
+                                 label="联系方式"
+                                 width="160" />
+                <el-table-column prop="appointStatus"
+                                 label="预约状态"
+                                 width="160">
+                  <template #default="{ row }">{{ setStatus(row.appointStatus) }}</template>
+                </el-table-column>
+                <el-table-column prop="appointStatus"
+                                 label="违约情况"
+                                 width="160">
+                  <template #default="{ row }">{{ getBreachTypes(row) }}</template>
+                </el-table-column>
+                <el-table-column prop="breachScore"
+                                 label="扣分明细"
+                                 width="160">
+                  <template #default="{ row }">
+                    <span>{{ row.breachScore }}分</span>
+                  </template>
+                </el-table-column>
+                <el-table-column label="操作"
+                                 fixed="right"
+                                 width="160">
+                  <template #default="{ row }">
+                    <el-button type="primary"
+                               v-if="row.appointStatus == '10'"
+                               @click="editAppoint(row)"
+                               text>编辑</el-button>
+                    <el-button type="danger"
+                               v-if="showCancelBtn(row)"
+                               @click="cancelAppoint(row)"
+                               text>取消</el-button>
+                  </template>
+                </el-table-column>
+              </el-table>
+            </div>
+          </el-card>
+        </div>
       </el-container>
     </div>
   </div>
@@ -224,10 +341,12 @@ import Banner from "../components/Banner";
 import LeftTabs from "@/components/LeftTabs";
 import RightContent from "@/components/RightContent";
 import * as echarts from "echarts";
-import FullCalendar from '@fullcalendar/vue'
-import dayGridPlugin from '@fullcalendar/daygrid'
-import interactionPlugin from '@fullcalendar/interaction'
+import FullCalendar from "@fullcalendar/vue";
+import dayGridPlugin from "@fullcalendar/daygrid";
+import interactionPlugin from "@fullcalendar/interaction";
 import { getNoticeList } from "@/api/login";
+import { getInstrList, getInstrListByUser, userCancelAppoint, cancelAppoint } from "@/api/instr";
+import moment from "moment";
 import to from "await-to-js";
 export default {
   name: "PersonalCenter",
@@ -248,7 +367,7 @@ export default {
         },
         {
           label: "预约信息",
-        }
+        },
       ],
       routeList: [
         {
@@ -290,15 +409,197 @@ export default {
         events: [],
         dateClick: this.handleDateClick, // 当用户单击日期或时间时,触发该回调,触发此回调,您必须加载interaction插件
       },
-      noticeList: []
+      instrList: [],
+      noticeList: [],
+      curSelectedDate: "",
+      curTime: "",
+      appointData: [],
+      WEEKS: [
+        "星期日",
+        "星期一",
+        "星期二",
+        "星期三",
+        "星期四",
+        "星期五",
+        "星期六",
+      ],
     };
   },
   mounted() {
     this.tabSelect(this.options[0], 0);
+    this.curTime = this.getToday();
     this.initChart();
-    this.getNotice()
+    this.getNotice();
+    this.getInstr();
   },
   methods: {
+    moment,
+    // 獲取當前日期
+    getToday() {
+      return moment(moment().startOf("day").valueOf()).format("YYYY-MM-DD");
+    },
+    getYesterday() {
+      this.curTime = moment(
+        moment(this.curTime).add(-1, "days").startOf("day").valueOf()
+      ).format("YYYY-MM-DD");
+    },
+    getTomorrow() {
+      this.curTime = moment(
+        moment(this.curTime).add(+1, "days").startOf("day").valueOf()
+      ).format("YYYY-MM-DD");
+    },
+    getPrevWeekDays() {
+      this.curTime = moment(this.curTime)
+        .subtract(1, "week")
+        .format("YYYY-MM-DD");
+    },
+    getNextWeekDays() {
+      this.curTime = moment(this.curTime).add(1, "week").format("YYYY-MM-DD");
+    },
+    getPrevMonthDays() {
+      this.curTime = moment(this.curTime)
+        .subtract(1, "months")
+        .format("YYYY-MM-DD");
+    },
+    getNextMonthDays() {
+      this.curTime = moment(this.curTime).add(1, "months").format("YYYY-MM-DD");
+    },
+    getWeekDate() {
+      // 获取当前周的周一0点
+      var startOfWeek = moment(this.curTime)
+        .startOf("isoWeek")
+        .format("YYYY-MM-DD HH:mm:ss");
+
+      // 获取下一周的周一0点
+      var startOfNextWeek = moment(this.curTime)
+        .startOf("isoWeek")
+        .add(1, "weeks")
+        .format("YYYY-MM-DD HH:mm:ss");
+      return [startOfWeek, startOfNextWeek];
+    },
+    getMonthDate() {
+      const date = moment(this.curTime);
+      // 获取当前月份的最后一天
+      return [
+        date.startOf("month").format("YYYY-MM-DD HH:mm:ss"),
+        date.endOf("month").add(1, "days").format("YYYY-MM-DD") + " 00:00:00",
+      ];
+    },
+    // 上一周、天、月
+    handlePrev() {
+      if (this.curSelectedDate == "d") {
+        this.getYesterday();
+      } else if (this.curSelectedDate == "w") {
+        this.getPrevWeekDays();
+      } else if (this.curSelectedDate == "m") {
+        this.getPrevMonthDays();
+      }
+      this.getAppointList();
+    },
+    // 下一周、天、月
+    handleNext() {
+      if (this.curSelectedDate == "d") {
+        this.getTomorrow();
+      } else if (this.curSelectedDate == "w") {
+        this.getNextWeekDays();
+      } else if (this.curSelectedDate == "m") {
+        this.getNextMonthDays();
+      }
+      this.getAppointList();
+    },
+    selectDate(date) {
+      this.curSelectedDate = date;
+      this.getAppointList();
+    },
+    async getAppointList() {
+      let startTimeStart = "";
+      let startTimeEnd = "";
+      if (this.curSelectedDate == "d") {
+        startTimeStart = moment(this.curTime).format("YYYY-MM-DD HH:mm:ss");
+        startTimeEnd = moment(this.curTime)
+          .add(1, "days")
+          .format("YYYY-MM-DD HH:mm:ss");
+      } else if (this.curSelectedDate == "w") {
+        startTimeStart = this.getWeekDate()[0];
+        startTimeEnd = this.getWeekDate()[1];
+      } else if (this.curSelectedDate == "m") {
+        startTimeStart = moment(this.curTime)
+          .startOf("month")
+          .format("YYYY-MM-DD HH:mm:ss");
+        startTimeEnd = this.getMonthDate()[1];
+      }
+      const [err, res] = await to(
+        getInstrListByUser({ startTimeStart, startTimeEnd })
+      );
+      if (err) return;
+      this.appointData = res.data.list;
+    },
+    setStatus(key) {
+      let str = "";
+      switch (key) {
+        case "10":
+          str = "待审核";
+          break;
+        case "11":
+          str = "已退回";
+          break;
+        case "20":
+          str = "已通过";
+          break;
+        case "30":
+          str = "已驳回";
+          break;
+        case "40":
+          str = "已取消";
+          break;
+        case "50":
+          str = "已上机";
+          break;
+        case "60":
+          str = "已完成";
+          break;
+        case "70":
+          str = "审核超时";
+          break;
+        case "80":
+          str = "超时取消";
+          break;
+        case "90":
+          str = "超时未上机";
+          break;
+      }
+      return str;
+    },
+    getBreachTypes(row) {
+      let breachTypes = [];
+      if (row.isLate) breachTypes.push("迟到");
+      if (row.isOvertime) breachTypes.push("超时");
+      if (row.isLeaveEarly) breachTypes.push("早退");
+      if (row.isAbsence) breachTypes.push("爽约");
+      return breachTypes.join("、") || "-";
+    },
+    cancelAppoint(row) {
+      // 删除附件
+      this.$confirm("确认取消预约?", "提示", {
+        confirmButtonText: "确认",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(async () => {
+          const post =
+            row.userId == props.curUserId
+              ? userCancelAppoint({ id: Number(row.id) })
+              : cancelAppoint({ id: Number(row.id) });
+          const [err] = await to(post);
+          if (err) return;
+          this.$message.success("取消成功");
+          this.getAppointList();
+        })
+        .catch(() => {});
+    },
+    editAppoint() {
+
+    },
     // 选择tab
     tabSelect(row, index) {
       this.active = index;
@@ -310,6 +611,11 @@ export default {
       if (err) return;
       this.noticeList = res.data.list || [];
     },
+    async getInstr() {
+      const [err, res] = await to(getInstrList({ pageSize: 4, pageNum: 1 }));
+      if (err) return;
+      this.instrList = res.data.list || [];
+    },
     initChart() {
       let chart = echarts.init(document.getElementById("chart"));
       const options = {
@@ -400,7 +706,7 @@ export default {
       chart.setOption(options);
     },
     handleDateClick(dateClickInfo) {
-      console.log(dateClickInfo)
+      console.log(dateClickInfo);
     },
   },
 };
@@ -429,7 +735,7 @@ export default {
           display: flex;
           align-items: center;
           &:before {
-            content: '';
+            content: "";
             display: inline-block;
             width: 6px;
             height: 6px;
@@ -444,7 +750,7 @@ export default {
       height: 300px;
     }
   }
-  &.technical .el-card{
+  &.technical .el-card {
     height: auto;
     ::v-deep .el-card__body {
       height: auto;
@@ -511,7 +817,7 @@ export default {
         font-size: 14px;
       }
       .remain-time {
-        color: #F56C6C;
+        color: #f56c6c;
       }
     }
   }
@@ -561,7 +867,7 @@ export default {
       flex: 1;
       text-align: center;
       background-color: #d9fba5;
-      box-shadow: 0 2px 12px 0 rgba(0,0,0,.1);
+      box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
       &:nth-child(2) {
         background-color: #98ca49;
       }
@@ -583,4 +889,55 @@ export default {
     }
   }
 }
+.toolbar-wrap {
+  height: 30px;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  // margin-bottom: 20px;
+  .switch-date {
+    width: 108px;
+    height: 28px;
+    border-radius: 2px;
+    border: 1px solid #b5c1d8;
+    display: flex;
+    padding: 4px 6px 0;
+    .btn {
+      cursor: pointer;
+      flex: 1;
+      font-size: 13px;
+      color: #585858;
+      display: flex;
+      align-items: center;
+      justify-content: center;
+      &.actived {
+        background: #eef3fe;
+        font-weight: bold;
+        color: #2c78ff;
+      }
+    }
+  }
+  .date-wrap {
+    display: flex;
+    align-items: center;
+    :deep(.el-button--small.is-circle) {
+      width: 26px;
+      height: 26px;
+    }
+    .date {
+      margin: 0 10px;
+      font-size: 14px;
+      color: #585858;
+    }
+    .week {
+      color: #2c78ff;
+      padding-left: 6px;
+    }
+  }
+}
+.table-wrap {
+  flex: 1;
+  margin: 20px 0 0;
+  // overflow: hidden;
+}
 </style>

+ 1 - 266
src/views/Product.vue

@@ -1,284 +1,19 @@
 <template>
   <div class="product">
-    <banner img="../assets/img/bgtop.jpg" title="产品中心" />
-    <div class="product-content" v-loading="loading">
-      <div class="p-video">
-        <video-player
-          class="video-player vjs-custom-skin"
-          ref="videoPlayer"
-          :playsinline="true"
-          :options="playerOptions"
-        ></video-player>
-      </div>
-      <div class="lacking">
-        <h3 class="title">传统管理模式不足</h3>
-        <div class="lacking-bottom">
-          <div class="lacking-bottom-item">
-            <div class="lacking-bottom-item-img">
-              <img src="../assets/img/product-group-icon_3.png" alt />
-            </div>
-            <p>质量检查、安全检查以抽查为主,难免存在遗漏,留下质量安全隐患。</p>
-          </div>
-
-          <div class="lacking-bottom-item">
-            <div class="lacking-bottom-item-img">
-              <img src="../assets/img/product-group-icon_2.png" alt />
-            </div>
-            <p>数据统计、数据分析的缺失,无法为统计、分析、项目评估等工作提供数据支撑。</p>
-          </div>
-
-          <div class="lacking-bottom-item">
-            <div class="lacking-bottom-item-img">
-              <img src="../assets/img/product-group-icon_1.png" alt />
-            </div>
-            <p>检查工作和检查记录文件脱节,无法做到同步对应;缺少影像文档,无法做到可追溯性。</p>
-          </div>
-        </div>
-      </div>
-      <!-- 平台目标 -->
-      <div class="target">
-        <h3 class="title">平台目标</h3>
-        <p class="eTitle">TARGET</p>
-        <div class="target-img">
-          <img src="../assets/img/product_group_3_img.png" alt />
-        </div>
-      </div>
-      <!--功能模块  -->
-      <div class="modular">
-        <h3 class="title">功能模块</h3>
-        <p class="eTitle">MODULAR</p>
-        <div class="modular-content">
-          <div class="modular-content-same">
-            <div class="same-item">
-              <div class="same-item-img">
-                <img src="../assets/img/product-group_4-icon_1.png" alt />
-              </div>
-              <p>质量控制模块</p>
-            </div>
-            <div class="same-item">
-              <div class="same-item-img">
-                <img src="../assets/img/product-group_4-icon_2.png" alt />
-              </div>
-              <p>知识仓库模块</p>
-            </div>
-            <div class="same-item">
-              <div class="same-item-img">
-                <img src="../assets/img/product-group_4-icon_3.png" alt />
-              </div>
-              <p>信息流程模块</p>
-            </div>
-            <div class="same-item">
-              <div class="same-item-img">
-                <img src="../assets/img/product-group_4-icon_1.png" alt />
-              </div>
-              <p>定位复核模块</p>
-            </div>
-          </div>
-          <div class="modular-content-center">
-            <img src="../assets/img/product_group_4_img.png" alt />
-          </div>
-          <div class="modular-content-same">
-            <div class="same-item">
-              <p>信息处理模块</p>
-              <div class="same-item-img">
-                <img src="../assets/img/product-group_4-icon_5.png" alt />
-              </div>
-            </div>
-            <div class="same-item">
-              <p>材料设备模块</p>
-              <div class="same-item-img">
-                <img src="../assets/img/product-group_4-icon_6.png" alt />
-              </div>
-            </div>
-            <div class="same-item">
-              <p>进度控制模块</p>
-              <div class="same-item-img">
-                <img src="../assets/img/product-group_4-icon_7.png" alt />
-              </div>
-            </div>
-            <div class="same-item">
-              <p>安全管理模块</p>
-              <div class="same-item-img">
-                <img src="../assets/img/product-group_4-icon_8.png" alt />
-              </div>
-            </div>
-          </div>
-        </div>
-      </div>
-    </div>
   </div>
 </template>
 
 <script>
-import Banner from "../components/Banner";
 export default {
   data() {
     return {
-      loading: true,
-      videoSrc: "http://www.shkjem.com/video/kj.mp4",
-      playerOptions: {
-        playbackRates: [0.5, 1.0, 1.5, 2.0, 4.0, 8.0], //可选择的播放速度
-        autoplay: false, //如果true,浏览器准备好时开始回放。
-        muted: false, // 默认情况下将会消除任何音频。
-        loop: false, // 视频一结束就重新开始。
-        preload: "auto", // 建议浏览器在<video>加载元素后是否应该开始下载视频数据。auto浏览器选择最佳行为,立即开始加载视频(如果浏览器支持)
-        language: "zh-CN",
-        aspectRatio: "16:9", // 将播放器置于流畅模式,并在计算播放器的动态大小时使用该值。值应该代表一个比例 - 用冒号分隔的两个数字(例如"16:9"或"4:3")
-        fluid: true, // 当true时,Video.js player将拥有流体大小。换句话说,它将按比例缩放以适应其容器。
-        sources: [
-          {
-            type: "",
-            src: "http://www.shkjem.com/video/kj.mp4" //url地址
-          }
-        ],
-        //poster: "../assets/img/home_top.jpg", //你的封面地址
-        // width: document.documentElement.clientWidth,
-        notSupportedMessage: "此视频暂无法播放,请稍后再试", //允许覆盖Video.js无法播放媒体源时显示的默认信息。
-        controlBar: {
-          timeDivider: true, //当前时间和持续时间的分隔符
-          durationDisplay: true, //显示持续时间
-          remainingTimeDisplay: false, //是否显示剩余时间功能
-          fullscreenToggle: true //全屏按钮
-        }
-      }
     };
   },
   components: {
-    Banner
   },
-  created() {
-    this.$http
-      .get(
-        "DataDictionary/GetDataDictionaryAll?key=%E4%BA%A7%E5%93%81%E8%A7%86%E9%A2%91%E9%93%BE%E6%8E%A5"
-      )
-      .then(response => {
-        this.videoSrc = response.data[0].Content;
-        window.console.log(this.videoSrc);
-        this.loading = false;
-      })
-      .catch(function(error) {
-        window.console.log(error);
-      });
-  }
+  created() {}
 };
 </script>
 
 <style lang="scss" scoped>
-.product {
-  width: 100%;
-  height: 100%;
-  background-color: #14679f;
-}
-
-.product-content {
-  width: 1240px;
-  margin: 0 auto;
-  background-color: #fff;
-}
-
-.p-video {
-  width: 1000px;
-  margin: 0 auto;
-  padding: 60px 0;
-}
-
-//传统管理模式不足
-.lacking {
-  height: 420px;
-  padding: 20px 0;
-  //margin: 20px 0;
-
-  .lacking-bottom {
-    display: flex;
-    justify-content: space-around;
-    padding: 100px 100px;
-
-    .lacking-bottom-item {
-      width: 200px;
-      display: flex;
-      flex-direction: column;
-      align-items: center;
-      text-align: center;
-      //justify-content: center;
-
-      .lacking-bottom-item-img {
-        width: 120px;
-        height: 120px;
-        background: #1667a0;
-        border-radius: 50%;
-        overflow: hidden;
-        line-height: 160px;
-      }
-    }
-    p {
-      font-size: 16px;
-      text-align: start;
-      margin: 10px 0;
-    }
-  }
-}
-
-//平台目标
-.target {
-  margin-top: 50px;
-  &-img {
-    margin-top: 50px;
-    text-align: center;
-  }
-}
-
-//
-.modular {
-  margin-top: 50px;
-  .modular-content {
-    padding: 50px 50px;
-    display: flex;
-    justify-content: space-around;
-  }
-}
-.modular-content-same {
-  width: 182px;
-  height: 405px;
-
-  .same-item {
-    height: 70px;
-    padding: 10px 0;
-    display: flex;
-    justify-content: space-between;
-
-    .same-item-img {
-      width: 70px;
-      height: 70px;
-      line-height: 100px;
-      background: #1667a0;
-      border-radius: 50%;
-      text-align: center;
-    }
-    p {
-      color: #1667a0;
-      font-weight: 700;
-      line-height: 70px;
-    }
-  }
-}
-
-.modular-content-center {
-  width: 355px;
-  height: 355px;
-  img {
-    width: 100%;
-  }
-}
-//公共样式
-.title,
-.eTitle {
-  font-size: 34px;
-  font-weight: 400;
-  color: #333;
-  text-align: center;
-}
-.eTitle {
-  font-size: 30px;
-  padding: 10px 0;
-}
 </style>

+ 16 - 12
src/views/Register.vue

@@ -97,6 +97,11 @@
               </template>
             </el-cascader>
           </el-form-item>
+          <el-form-item label="单位名称"
+                        prop="unitName"
+                        v-if="form.deptId === 999999">
+            <el-input v-model="form.unitName" placeholder="请输入单位名称"></el-input>
+          </el-form-item>
           <el-form-item label="证件号"
                         prop="idCode">
             <el-input placeholder="请输入证件号"
@@ -113,9 +118,9 @@
             </el-input>
           </el-form-item>
           <el-form-item label="课题组"
-                        prop="applyPgName"
+                        prop="projectGroupName"
                         v-if="form.registerType === '20'">
-            <el-input v-model="form.applyPgName"></el-input>
+            <el-input v-model="form.projectGroupName"></el-input>
           </el-form-item>
           <el-form-item label="课题组"
                         prop="applyPg"
@@ -182,13 +187,14 @@ export default {
       }
     };
     const checkDate = (rule, value, callback) => {
-      console.log(value, 'valueeeeee');
-      
       if(this.form.registerType === '10' && !value.length) {
         callback(new Error("请选择所在时间"));
       }
       callback()
     };
+    const checkUnit = (rule, value, callback) => {
+
+    }
     return {
       active: 0,
       type: "person",
@@ -200,9 +206,6 @@ export default {
         userType: "10", // 关联角色
         deptId: null,
         deptName: "", // 单位名称
-        postIds: [],
-        roleIds: [],
-        groupIds: [],
         phone: "", // 手机号
         email: "", // 邮箱
         sex: "30", // 性别
@@ -219,8 +222,8 @@ export default {
         projectDate: [],
         registerType: '10',
         applyPg: {},
-        applyPgName: '',
-        applyPgId: null
+        projectGroupName: '',
+        projectGroupId: null
       },
       rules: {
         userName: [
@@ -245,11 +248,12 @@ export default {
         deptId: [
           { required: true, message: "请选择组织部门", trigger: "change" },
         ],
+        unitName: [{ required: true, message: "请输入单位名称", trigger: "blur" }],
         idCode: [{ required: true, message: "请输入证件号", trigger: "blur" }],
         applyPg: [
           { required: true, message: "请选择课题组", trigger: "change" },
         ],
-        applyPgName: [
+        projectGroupName: [
           { required: true, message: "请输入课题组", trigger: "blur" },
         ],
         projectDate: [
@@ -320,8 +324,8 @@ export default {
           }
           delete params.projectDate
           if(params.registerType === '10') {
-            params.applyPgId = params.applyPg.id
-            params.applyPgName = params.applyPg.padName
+            params.projectGroupId = params.applyPg.id
+            params.projectGroupName = params.applyPg.pgName
           }
           delete params.applyPg
           const [err] = await to(register(params));