Browse Source

智能表单

SanHQin 1 tuần trước cách đây
mục cha
commit
6e394a3afe

+ 17 - 2
src/components/pages/liyuan/page/examine/index.vue

@@ -542,9 +542,19 @@ export default {
           testId: val.join(",")
         }
       ];
+
+      let _url = "selectExamineTestName"
+      if(this.testExamineBaseList[0].value){
+        const timeValue = JSON.parse(this.testExamineBaseList[0].value).time;
+        params[0].startTime = timeValue[0];
+        params[0].endTime = timeValue[1];
+        _url = `selectExamineTestNameFilterTime`
+      }
+
+
       return new Promise(resolve => {
         this.ajax
-          .post(this.$store.state.api + "selectExamineTestName", params)
+          .post(this.$store.state.api + _url, params)
           .then(res => {
             resolve(res.data[0]);
           })
@@ -556,7 +566,12 @@ export default {
     // 查看数据来源
     lookPrize(val) {
       // return;
-      this.ifmUrl = `https://beta.pbl.cocorobo.cn/pbl-teacher-table/dist/#/checkToTest?userid=${this.userid}&cid=${val}&oid=${this.oid}&org=${this.org}&type=2&role=0&peopleId=${this.userid}&tType=${this.pType}&examineId=${this.testExamineBaseList[0].id}`;
+      if(this.testExamineBaseList[0].value){
+        const timeValue = JSON.parse(this.testExamineBaseList[0].value).time;
+        this.ifmUrl = `https://beta.pbl.cocorobo.cn/pbl-teacher-table/dist/#/checkToTest?userid=${this.userid}&cid=${val}&oid=${this.oid}&org=${this.org}&type=2&role=0&peopleId=${this.userid}&tType=${this.pType}&examineId=${this.testExamineBaseList[0].id}&timeLimit=${timeValue}`;
+      }else{
+        this.ifmUrl = `https://beta.pbl.cocorobo.cn/pbl-teacher-table/dist/#/checkToTest?userid=${this.userid}&cid=${val}&oid=${this.oid}&org=${this.org}&type=2&role=0&peopleId=${this.userid}&tType=${this.pType}&examineId=${this.testExamineBaseList[0].id}`;
+      }
       // this.ifmUrl = `https://beta.pbl.cocorobo.cn/pbl-teacher-table/dist/#/test?userid=${this.userid}&oid=45facc0a-1211-11ec-80ad-005056b86db5&org=&role=0`;
       this.diaIframe = true;
     },

+ 206 - 0
src/components/pages/noticeCenter/component/received.vue

@@ -0,0 +1,206 @@
+<template>
+  <div class="received">
+    <div class="r_header">
+      <div class="r_h_title">已收通知</div>
+      <div class="r_h_right">
+        <div class="r_h_r_total">
+          共(
+          <div>{{ pageData.total }}</div>
+          )封
+        </div>
+        <el-input
+          style="width: 250px;"
+          placeholder="请输入关键词"
+          v-model="searchValue"
+        >
+          <i slot="suffix" class="el-input__icon el-icon-search"></i>
+        </el-input>
+      </div>
+    </div>
+    <div class="r_content" v-loading="tableLoading">
+      <el-table
+        :data="tableData"
+        :header-cell-style="{ background: '#f1f1f1', fontSize: '17px' }"
+        style="width: 100%"
+        height="calc(100%)"
+      >
+        <el-table-column
+          fixed
+          prop="title"
+          label="通知标题"
+          width="auto"
+          min-width="200"
+        >
+        <template slot-scope="scope">
+          <span v-html="scope.row.title"></span>
+        </template>
+        </el-table-column>
+        <el-table-column label="状态 " width="150" align="center">
+          <template slot-scope="scope">
+          <span>{{status[scope.row.status]}}</span>
+        </template>
+        </el-table-column>
+        <el-table-column
+          prop="type"
+          label="类型 "
+          width="150"
+          align="center"
+        >
+        </el-table-column>
+        <el-table-column prop="create_at" label="时间 " width="250" align="center">
+        </el-table-column>
+        <el-table-column
+          prop="publisherName"
+          label="发布者 "
+          width="300"
+          align="center"
+        >
+        </el-table-column>
+        <el-table-column prop="source" label="发布来源" width="200" align="center">
+        </el-table-column>
+      </el-table>
+    </div>
+    <div class="r_bottom">
+      <el-pagination
+        @size-change="handleSizeChange"
+        @current-change="handleCurrentChange"
+        :current-page="pageData.nowPage"
+        :page-sizes="[10, 20, 30, 40]"
+        :page-size="pageData.size"
+        layout="sizes, prev, pager, next"
+        :total="pageData.total"
+      >
+      </el-pagination>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      userId: this.$route.query.userid,
+      org: this.$route.query.org,
+      oid: this.$route.query.oid,
+      tableLoading: false,
+      status:["未读","已读"],
+      searchValue: "",
+      tableData: [],
+      copyData:[],
+      pageData: {
+        nowPage: 1,
+        total: 0,
+        size: 20
+      }
+    };
+  },
+  methods: {
+    handleSizeChange(val) {
+      this.pageData.size = val;
+      this.getData();
+    },
+    handleCurrentChange(val) {
+      this.pageData.nowPage = val;
+      this.getData();
+    },
+    getData() {
+      if (this.tableLoading) return;
+      this.tableLoading = true;
+      let params = [{
+        uid: this.userId,
+        status:"",
+        type:"",
+        source:"",
+        pUid:"",
+        searchValue:this.searchValue,
+        pageNum:this.pageData.nowPage,
+        pageSize:this.pageData.size,
+      }]
+
+      this.ajax.post(this.$store.state.api+"select_noticeCenter",params).then(res=>{
+        let _resData = res.data[0];
+        if(_resData.length>0){
+          this.copyData = _resData;
+          this.tableData = _resData;
+          this.pageData.total = res.data[1][0].total;
+        }else{
+          this.copyData = [];
+          this.pageData.total = 0;
+          this.pageData.nowPage = 1;
+        }
+        this.tableLoading = false;
+        // this.tableData = res.data.list
+        // this.pageData.total = res.data.total
+      }).catch(e=>{
+        console.log(e);
+        this.$message.error("获取通知失败")
+        this.tableLoading = false;
+      })
+    }
+  },
+  mounted(){
+    this.getData();
+  }
+};
+</script>
+
+<style scoped>
+.received {
+  width: calc(100%);
+  height: 100%;
+  padding: 20px 20px;
+  background: #fff;
+  border: solid 1px #dfdfe0;
+  border-radius: 4px;
+  box-sizing: border-box;
+}
+
+.r_header {
+  width: 100%;
+  height: 80px;
+  display: flex;
+  box-sizing: border-box;
+  align-items: center;
+  justify-content: space-between;
+}
+
+.r_h_right {
+  width: fit-content;
+  display: flex;
+  align-items: center;
+}
+
+.r_h_r_total {
+  width: fit-content;
+  margin-right: 20px;
+  display: flex;
+  align-items: center;
+}
+
+.r_h_r_total > div {
+  display: flex;
+  color: #5398e3;
+}
+
+.r_h_title {
+  font-size: 28px;
+  font-weight: bold;
+}
+
+.r_content {
+  width: 100%;
+  height: calc(100% - 80px - 40px);
+  overflow: auto;
+  box-sizing: border-box;
+  padding: 20px 0px;
+  border-top: solid 1px #dfdfe0;
+}
+
+.r_bottom {
+  width: 100%;
+  height: 40px;
+  display: flex;
+  align-items: center;
+  justify-content: flex-end;
+}
+</style>

+ 7 - 122
src/components/pages/noticeCenter/index.vue

@@ -3,84 +3,23 @@
     <div class="nc_main">
       <div class="nc_m_left" v-show="false"></div>
       <div class="nc_m_right">
-        <div class="nc_m_r_header">
-          <div class="nc_m_r_h_title">已收通知</div>
-          <div class="nc_m_r_h_right">
-            <div class="nc_m_r_h_r_total">
-              共(
-              <div>{{ pageData.total }}</div>
-              )封
-            </div>
-            <el-input
-              style="width: 250px;"
-              placeholder="请输入关键词"
-              v-model="searchValue"
-            >
-              <i slot="suffix" class="el-input__icon el-icon-search"></i>
-            </el-input>
-          </div>
-        </div>
-        <div class="nc_m_r_content">
-          <el-table :data="tableData"  :header-cell-style="{ background: '#f1f1f1', fontSize: '17px' }" style="width: 100%" height="calc(100%)">
-            <el-table-column fixed prop="date" label="通知标题" width="auto" min-width="200">
-            </el-table-column>
-            <el-table-column prop="name" label="状态 " width="150" align="center">
-            </el-table-column>
-            <el-table-column prop="province" label="类型 " width="150" align="center">
-            </el-table-column>
-            <el-table-column prop="city" label="时间 " width="200" align="center">
-            </el-table-column>
-            <el-table-column prop="address" label="发布者 " width="300" align="center">
-            </el-table-column>
-            <el-table-column prop="zip" label="发布来源" width="200" align="center">
-            </el-table-column>
-          </el-table>
-        </div>
-        <div class="nc_m_r_bottom">
-          <el-pagination
-            @size-change="handleSizeChange"
-            @current-change="handleCurrentChange"
-            :current-page="pageData.nowPage"
-            :page-sizes="[10, 20, 30, 40]"
-            :page-size="pageData.size"
-            layout="sizes, prev, pager, next"
-            :total="pageData.total">
-          </el-pagination>
-        </div>
+        <received v-show="showRight === 0" ref="receivedRef"/>
       </div>
     </div>
   </div>
 </template>
 
 <script>
+import received from './component/received.vue';
 export default {
+  components:{
+    received
+  },
   data() {
     return {
-      userId:this.$route.query.userid,
-      org:this.$route.query.org,
-      oid:this.$route.query.oid,
-      searchValue: "",
-      tableData: [],
-      pageData:{
-        nowPage:1,
-        total: 0,
-        size:20,
-      },
+      showRight:0,
     };
   },
-  methods:{
-    handleSizeChange(val){
-      this.pageData.size = val;
-      this.getData()
-    },
-    handleCurrentChange(val){
-      this.pageData.nowPage = val;
-      this.getData();
-    },
-    getData(){
-      this.$message.info("获取数据")
-    },
-  },
 };
 </script>
 
@@ -116,62 +55,8 @@ export default {
 }
 
 .nc_m_right {
-  width: calc(100% - 300px - 20px);
+  /* width: calc(100% - 300px - 20px); */
   width: calc(100%);
   height: 100%;
-  padding: 20px 20px;
-  background: #fff;
-  border: solid 1px #dfdfe0;
-  border-radius: 4px;
-  box-sizing: border-box;
-}
-
-.nc_m_r_header {
-  width: 100%;
-  height: 80px;
-  display: flex;
-  box-sizing: border-box;
-  align-items: center;
-  justify-content: space-between;
-}
-
-.nc_m_r_h_right {
-  width: fit-content;
-  display: flex;
-  align-items: center;
-}
-
-.nc_m_r_h_r_total {
-  width: fit-content;
-  margin-right: 20px;
-  display: flex;
-  align-items: center;
-}
-
-.nc_m_r_h_r_total > div {
-  display: flex;
-  color: #5398e3;
-}
-
-.nc_m_r_h_title {
-  font-size: 28px;
-  font-weight: bold;
-}
-
-.nc_m_r_content {
-  width: 100%;
-  height: calc(100% - 80px - 40px);
-  overflow: auto;
-  box-sizing: border-box;
-  padding: 20px 0px;
-  border-top: solid 1px #dfdfe0;
-}
-
-.nc_m_r_bottom {
-  width: 100%;
-  height: 40px;
-  display: flex;
-  align-items: center;
-  justify-content: flex-end;
 }
 </style>

+ 11 - 11
src/components/pages/test/check/index.vue

@@ -1588,7 +1588,7 @@
                     @click="returnTest(scope.row)"
                     type="primary"
                     size="small"
-                    v-if="((examineData && examineData.type == 1) || !examineData) && review == '1'"
+                   v-if="((examineData && examineData.type == 1) || !examineData) && review == '1'"
                     >退回</el-button
                   >
                   <!-- v-if="((examineData && examineData.type == 1) || !examineData) && review == '1'" -->
@@ -3682,22 +3682,21 @@ ${JSON.stringify(forAllList)}
           if(this.timeLimit){
             if(this.works[0]){
               let _data = JSON.parse(this.works[0].courseJson)
-              let _flag = false;
+              console.log("this.works",this.works)
               _data.forEach((item,index)=>{
-                if(item.type == 8 && item.json.title == "获奖时间"){
-                  _flag = true
+                if(item.type == 8){
                   let time = this.timeLimit.split(",");
                   this.tableDatePicker[index] = [new Date(time[0]),new Date(time[1])]
                 }
               })
 
-              if(!_flag){
-                let time = this.timeLimit.split(",");
-                this.submissionTimePicker =  [new Date(time[0]),new Date(time[1])];
-                this.submissionTimePickerChange()
-              }else{
+              // if(!_flag){
+              //   let time = this.timeLimit.split(",");
+              //   this.submissionTimePicker =  [new Date(time[0]),new Date(time[1])];
+              //   this.submissionTimePickerChange()
+              // }else{
                 this.tableDataPickerChange();
-              }
+              // }
               this.$forceUpdate();
             }
           }
@@ -4925,7 +4924,8 @@ ${JSON.stringify(item.array)}
 
       this.ajax.post(this.$store.state.api+"update_testCourseWorks_typeById",params).then(res=>{
         if(res.data==1){
-          this.tableWorksArray.find(i=>i.id==row.id).type = "4";
+          this.getData();
+          // this.tableWorksArray = this.tableWorksArray.filter(i=>i.id!==row.id);
           this.$message.success("表单退回成功");
         }
       }).catch(e=>{

+ 23 - 2
src/components/pages/testPerson/examine/index.vue

@@ -537,9 +537,24 @@ export default {
           testId: val.join(",")
         }
       ];
+      let _url = "selectExamineTestName"
+      if(this.testExamineBaseList[0].value){
+        const timeValue = JSON.parse(this.testExamineBaseList[0].value).time;
+        params[0].startTime = timeValue[0];
+        params[0].endTime = timeValue[1];
+        _url = `selectExamineTestNameFilterTime`
+      }
+      // console.log("this.timeSortList",timeSortList)
+      // if(timeSortList && timeSortList.time && timeSortList.time.length>0){
+      //   const timeValue = timeSortList.time;
+      //   params[0].startTime = timeValue[0];
+      //   params[0].endTime = timeValue[1];
+      //   _fnStr = `selectExamineTestNameFilterTime`
+      // }
+
       return new Promise(resolve => {
         this.ajax
-          .post(this.$store.state.api + "selectExamineTestName", params)
+          .post(this.$store.state.api + _url, params)
           .then(res => {
             resolve(res.data[0]);
           })
@@ -551,7 +566,13 @@ export default {
     // 查看数据来源
     lookPrize(val) {
       // return;
-      this.ifmUrl = `https://beta.pbl.cocorobo.cn/pbl-teacher-table/dist/#/checkToTest?userid=${this.userid}&cid=${val}&oid=${this.oid}&org=${this.org}&type=2&role=0&peopleId=${this.userid}&tType=${this.pType}&examineId=${this.testExamineBaseList[0].id}`;
+
+      if(this.testExamineBaseList[0].value){
+        const timeValue = JSON.parse(this.testExamineBaseList[0].value).time;
+        this.ifmUrl = `https://beta.pbl.cocorobo.cn/pbl-teacher-table/dist/#/checkToTest?userid=${this.userid}&cid=${val}&oid=${this.oid}&org=${this.org}&type=2&role=0&peopleId=${this.userid}&tType=${this.pType}&examineId=${this.testExamineBaseList[0].id}&timeLimit=${timeValue}`;
+      }else{
+        this.ifmUrl = `https://beta.pbl.cocorobo.cn/pbl-teacher-table/dist/#/checkToTest?userid=${this.userid}&cid=${val}&oid=${this.oid}&org=${this.org}&type=2&role=0&peopleId=${this.userid}&tType=${this.pType}&examineId=${this.testExamineBaseList[0].id}`;
+      }
       // this.ifmUrl = `https://beta.pbl.cocorobo.cn/pbl-teacher-table/dist/#/test?userid=${this.userid}&oid=45facc0a-1211-11ec-80ad-005056b86db5&org=&role=0`;
       this.diaIframe = true;
     },