chenxiong 3 gadi atpakaļ
vecāks
revīzija
7503ffd7c0

+ 8 - 0
package-lock.json

@@ -12687,6 +12687,14 @@
         }
       }
     },
+    "vue-esign": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/vue-esign/-/vue-esign-1.1.0.tgz",
+      "integrity": "sha512-e4fjK7BAMekHPo9/xAZF2xW7fAcSEWNZzxnZeIcRbA0lz9fo0I2D+/PeBGDo0ap2M/DDxxbqQUm/p8UGeA590g==",
+      "requires": {
+        "vue": "^2.5.11"
+      }
+    },
     "vue-hot-reload-api": {
       "version": "2.3.4",
       "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz",

+ 1 - 0
package.json

@@ -17,6 +17,7 @@
     "v-distpicker": "^1.2.13",
     "vue": "^2.5.2",
     "vue-awesome-swiper": "^3.1.3",
+    "vue-esign": "^1.1.0",
     "vue-router": "^3.0.1",
     "vuex": "^3.6.2"
   },

+ 26 - 0
src/apis/course.js

@@ -214,4 +214,30 @@ export default {
 	},
 
   
+	faceCertificationIDCardOCR(data) {
+		return request({
+			url: '/face/certification/IDCardOCR',
+			method: 'post',
+			data:data
+		})
+	},
+
+  facCertificationImageRecognition(data) {
+		return request({
+			url: '/face/certification/ImageRecognition',
+			method: 'post',
+			data:data
+		})
+	},
+
+
+  appBeforeAddress(data) {
+		return request({
+			url: '/app/before/address',
+			method: 'get',
+			params: data
+		})
+	},
+
+  
 }

+ 37 - 0
src/apis/profileTp.js

@@ -56,4 +56,41 @@ export default {
 		})
 	},
 
+  //获取填写盖章审核详细信息
+	getbaseprofileStampgetInfo(data) {
+		return request({
+			url: '/base/profileStamp/getInfo',
+			method: 'get',
+			params: data
+		})
+	},
+
+  
+	//导出盖章word
+	addWordbaseprofileStamp(data) {
+		return request({
+			url: '/base/profileStamp/addWord',
+			method: 'post',
+			data: data
+		})
+	},
+
+  //修改填写盖章审核
+	editbaseprofileStamp(data) {
+		return request({
+			url: '/base/profileStamp/edit',
+			method: 'post',
+			data: data
+		})
+	},
+
+  //新增填写盖章审核
+	addbaseprofileStamp(data) {
+		return request({
+			url: '/base/profileStamp',
+			method: 'post',
+			data: data
+		})
+	},
+
 }

+ 18 - 0
src/apis/user.js

@@ -106,6 +106,14 @@ export default {
     })
   },
 
+  
+	goodsGradeInfo(data) {
+		return request({
+			url: '/grade/grade/'+data,
+			method: 'get'
+		})
+	},
+
   /**
    * 
    * @param {*} data 
@@ -269,5 +277,15 @@ export default {
 			data: data
 		})
 	},
+
+  appInformUserRemoveAll(data) {
+		return request({
+			url: '/app/informUser/removeAll',
+			method: 'post',
+			data: data
+		})
+	},
   
+
+ 
 }

+ 4 - 4
src/axios.js

@@ -1,13 +1,13 @@
 import axios from 'axios'
 import store from './store'
-export const BASE_URL = 'https://api.xyyxt.net'   //release
-// export const BASE_URL = 'http://42.192.164.187:19005'    //test
+// export const BASE_URL = 'https://api.xyyxt.net'   //release
+export const BASE_URL = 'http://42.192.164.187:19005'    //test
 export const tenantId = '867735392558919680'
 
 
 //图片上传api
-export const BASE_IMG_URL = 'https://file.xyyxt.net/'     //release
-// export const BASE_IMG_URL = 'https://file-dev.xyyxt.net/'  //test
+// export const BASE_IMG_URL = 'https://file.xyyxt.net/'     //release
+export const BASE_IMG_URL = 'https://file-dev.xyyxt.net/'  //test
 
 import { Notification, MessageBox, Message } from 'element-ui'
 import tools from './common/tools'

+ 21 - 0
src/common/tools.js

@@ -171,4 +171,25 @@ export default {
     }
     return new Blob([ab], { type: "image/png" });
   },
+
+
+  imageToBase64(url) {
+    return new Promise(resolve => {
+      var image = new Image();
+      // 解决跨域 Canvas 污染问题,
+      image.setAttribute("crossorigin", "anonymous");
+      image.onload = function () {
+        var canvas = document.createElement("canvas");
+        canvas.width = image.width;
+        canvas.height = image.height;
+        var context = canvas.getContext("2d");
+        context.drawImage(image, 0, 0, image.width, image.height);
+        var url = canvas.toDataURL("image/png"); //将图片格式转为base64
+
+        resolve(url)
+      };
+      image.src = url + "?time=" + Date.now(); //注意,这里是灵魂,否则依旧会产生跨域问题
+    })
+    
+  }
 }

+ 4 - 0
src/common/uploadFile.js

@@ -4,6 +4,10 @@ export default {
     //file: 类似this.$refs.file.files[0]
     upload: function (file, int) {
         return new Promise((resolve, reject) => {
+            if(typeof file != 'object') {
+              resolve(file)
+              return;
+            }
             var datas = {
                 imageStatus: int
             }

+ 1 - 1
src/components/header/index.vue

@@ -67,7 +67,7 @@
           </select>
         </div>
         <div class="search__input">
-          <input type="text" v-model="searchKey" />
+          <input type="text" v-model="searchKey" autocomplete="off" />
         </div>
         <el-button type="primary" @click="search" class="search__btn"
           >搜索</el-button

+ 2 - 0
src/main.js

@@ -12,6 +12,7 @@ import 'element-ui/lib/theme-chalk/index.css';
 import filters from './filters/index.js'
 import upload from '@/common/uploadFile'
 import moment from "moment"
+import vueEsign from 'vue-esign'
 import 'moment/locale/zh-cn'
 
 
@@ -23,6 +24,7 @@ Vue.prototype.$upload = upload
 Vue.prototype.$moment = moment;
 
 Vue.use(ElementUI);
+Vue.use(vueEsign)
 
 Object.keys(filters).forEach(key => {
     Vue.filter(key, filters[key])

+ 3 - 0
src/pages/bank-list/index.vue

@@ -209,6 +209,9 @@ export default {
     goodsDetail(item) {
       this.$router.push({
         path: "/bank-detail/" + item.goodsId,
+        query: {
+          orderGoodsId: item.orderGoodsId,
+        },
       });
     },
 

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1335 - 0
src/pages/course-detail/index.vue


+ 15 - 0
src/pages/goods-detail/course-detail.vue

@@ -27,6 +27,10 @@
                   <div class="title">
                     {{ goodsDetail.goodsName }}
                   </div>
+                  <div class="desc">
+                    {{ courseList.length }} 课程
+                    {{ goodsDetail.classHours }}学时
+                  </div>
                   <div class="price" v-if="goodsDetail.standPrice">
                     ${{ goodsDetail.standPrice | toFixed }}
                   </div>
@@ -1286,6 +1290,17 @@ export default {
               line-height: 24px;
             }
 
+            .desc {
+              padding: 1px 5px;
+              display: inline-block;
+              border: 1px solid #333333;
+              border-radius: 4px;
+              font-size: 12px;
+              font-family: Microsoft YaHei;
+              font-weight: 400;
+              color: #333333;
+            }
+
             .price {
               margin-top: 10px;
               font-size: 24px;

+ 1 - 1
src/pages/home/index.vue

@@ -47,7 +47,7 @@
               </select>
             </div>
             <div class="search__input">
-              <input v-model="searchKey" type="text" />
+              <input v-model="searchKey" type="text" autocomplete="off" />
             </div>
             <el-button type="primary" @click="search" class="search__btn"
               >搜索</el-button

+ 16 - 1
src/pages/person-center/my-classhour/appointment-add-kp/index.vue

@@ -15,7 +15,7 @@
         class="appointment-content"
         ref="form"
         :model="form"
-        label-width="100px"
+        label-width="120px"
       >
         <div class="appointment-content__body">
           <el-descriptions title="考前培训预约考试"></el-descriptions>
@@ -116,6 +116,21 @@ export default {
     this.dataId = this.$route.query.dataId;
     this.orderGoodsId = this.$route.query.orderGoodsId;
     this.applyDs = this.getApplyData;
+    this.$confirm(
+      `线下考前培训,自由填选如您有需要,建议先进行预约。具体安排,后续会有相关工作人员与您沟通`,
+      "提示",
+      {
+        confirmButtonText: "确定",
+        cancelButtonText: "返回",
+        closeOnClickModal: false,
+        closeOnPressEscape: false,
+        showCancelButton: false,
+        distinguishCancelAndClose: false,
+        showClose: false,
+      }
+    )
+      .then((_) => {})
+      .catch((_) => {});
     this.getApplysubscribeApplySiteTrain();
   },
   methods: {

+ 45 - 2
src/pages/person-center/my-classhour/index/index.vue

@@ -37,7 +37,7 @@
                     审核中
                   </div>
                   <div class="note" v-if="item.periodStatus === 0">
-                    机构审核不通过
+                    机构审核不通过,有{{ item.rebuild }}节需要重修
                   </div>
                 </div>
               </div>
@@ -47,6 +47,9 @@
                   <div class="title">{{ item.goodsName }}</div>
                   <div class="desc desc--black" v-if="item.periodStatus === 1">
                     机构已审核通过,需等待注册中心复审后即可获得继续教育学时。审核时间约15个工作日,届时请前往官网申请证书延期。
+                    <div class="copy-btn">
+                      <a @click="copy">复制官网链接</a>
+                    </div>
                   </div>
                   <div class="desc" v-if="item.periodStatus === -1">
                     您的学时还未修完,请尽快完成课程学习
@@ -236,14 +239,23 @@
         </div>
       </div>
     </el-dialog>
+
+    <el-image-viewer
+      v-if="showViewer"
+      :on-close="closeViewer"
+      :url-list="[url]"
+    />
   </div>
 </template>
 
 <script>
+import ElImageViewer from "element-ui/packages/image/src/image-viewer";
 export default {
   name: "MyClasshour",
   data() {
     return {
+      copyUrl: "http://gdzczx.gdcic.net/",
+      showViewer: false,
       rebuildShow: false,
       showDetailModal: false,
       activeName: "1",
@@ -255,15 +267,22 @@ export default {
         pageNum: 1,
         pageSize: 10,
       },
+      url: "",
       total: 0,
       sysTime: 0,
     };
   },
+  components: {
+    ElImageViewer,
+  },
   mounted() {
     this.sysTime = +this.$tools.timest();
     this.getcourseperiodlistGoods();
   },
   methods: {
+    closeViewer() {
+      this.showViewer = false;
+    },
     goCourseDetail(item) {
       this.$router.push({
         path: `/my-course-detail/${item.goodsId}`,
@@ -409,7 +428,8 @@ export default {
     },
 
     preview(item) {
-      let url = this.$tools.splitImgHost(item.certificatePath, true);
+      this.url = this.$tools.splitImgHost(item.certificatePath);
+      this.showViewer = true;
     },
     download(item) {
       var url = this.$tools.splitImgHost(item.certificatePath, true);
@@ -419,6 +439,23 @@ export default {
       a.href = url;
       a.dispatchEvent(event);
     },
+
+    copy() {
+      var copyInput = document.createElement("input");
+      //val是要复制的内容
+      copyInput.setAttribute("value", this.copyUrl);
+      document.body.appendChild(copyInput);
+      copyInput.select();
+      try {
+        var copyed = document.execCommand("copy");
+        if (copyed) {
+          document.body.removeChild(copyInput);
+          this.$message.success("复制成功");
+        }
+      } catch (err) {
+        this.$message.error("复制失败,请检查浏览器兼容");
+      }
+    },
   },
 };
 </script>
@@ -531,6 +568,12 @@ export default {
               color: #ff3b30;
               margin-top: 20px;
 
+              .copy-btn {
+                text-decoration: underline;
+                padding-top: 10px;
+                color: #007aff;
+              }
+
               &--black {
                 color: #333;
               }

+ 35 - 762
src/pages/person-center/my-course/index.vue

@@ -286,6 +286,26 @@
                 >
                   选班重学
                 </el-button>
+                <el-button
+                  type="primary"
+                  class="btn"
+                  v-if="
+                    item.beforeStatus === 1 &&
+                    !(
+                      (item.interfacePushId > 0 && item.officialStatus != 1) ||
+                      sysTime <= item.serviceStartTime ||
+                      sysTime >= item.serviceEndTime ||
+                      (item.classStartTime && sysTime <= item.classStartTime) ||
+                      (item.classEndTime && sysTime >= item.classEndTime) ||
+                      item.learningStatus == 2 ||
+                      item.classStatus == 0 ||
+                      (item.learningStatus == 3 &&
+                        sysTime < item.learningTimeStart)
+                    )
+                  "
+                  @click="appBeforeAddress(item)"
+                  >进入刷题</el-button
+                >
               </div>
             </div>
           </div>
@@ -486,319 +506,6 @@
         </div>
       </div>
     </el-dialog>
-
-    <el-dialog
-      width="996px"
-      class="info"
-      :visible.sync="showInfoDetailModal"
-      :close-on-click-modal="false"
-      :close-on-press-escape="false"
-      title="资料填写"
-    >
-      <div class="info__content">
-        <el-form :model="infoForm" ref="infoForm" :error-type="errorType">
-          <template v-for="(item, index) in listData">
-            <el-form-item
-              :key="index"
-              v-if="item.fieldKey == 'name'"
-              :label="item.fieldName"
-              :required="item.required"
-              label-width="120px"
-              :prop="item.required ? item.fieldKey : ''"
-            >
-              <el-input
-                v-model="infoForm.name"
-                :placeholder="`请输入${item.fieldName}`"
-              />
-            </el-form-item>
-            <el-form-item
-              :key="index"
-              v-if="item.fieldKey == 'idcard'"
-              :label="item.fieldName"
-              :required="item.required"
-              label-width="120px"
-              :prop="item.required ? item.fieldKey : ''"
-            >
-              <el-input
-                v-model="infoForm.idcard"
-                :placeholder="`请输入${item.fieldName}`"
-              />
-            </el-form-item>
-            <el-form-item
-              :key="index"
-              v-if="item.fieldKey == 'telphone'"
-              :label="item.fieldName"
-              :required="item.required"
-              label-width="120px"
-              :prop="item.required ? item.fieldKey : ''"
-            >
-              <el-input
-                v-model="infoForm.telphone"
-                :placeholder="`请输入${item.fieldName}`"
-              />
-            </el-form-item>
-            <el-form-item
-              :key="index"
-              v-if="item.fieldKey == 'school'"
-              :label="item.fieldName"
-              :required="item.required"
-              label-width="120px"
-              :prop="item.required ? item.fieldKey : ''"
-            >
-              <el-input
-                v-model="infoForm.school"
-                :placeholder="`请输入${item.fieldName}`"
-              />
-            </el-form-item>
-            <el-form-item
-              :key="index"
-              v-if="item.fieldKey == 'work_unit'"
-              :label="item.fieldName"
-              :required="item.required"
-              label-width="120px"
-              :prop="item.required ? item.fieldKey : ''"
-            >
-              <el-input
-                v-model="infoForm.work_unit"
-                :placeholder="`请输入${item.fieldName}`"
-              />
-            </el-form-item>
-            <el-form-item
-              :key="index"
-              v-if="item.fieldKey == 'unit_contact'"
-              :label="item.fieldName"
-              :required="item.required"
-              label-width="120px"
-              :prop="item.required ? item.fieldKey : ''"
-            >
-              <el-input
-                v-model="infoForm.unit_contact"
-                :placeholder="`请输入${item.fieldName}`"
-              />
-            </el-form-item>
-            <el-form-item
-              :key="index"
-              v-if="item.fieldKey == 'unit_tel'"
-              :label="item.fieldName"
-              :required="item.required"
-              label-width="120px"
-              :prop="item.required ? item.fieldKey : ''"
-            >
-              <el-input
-                v-model="infoForm.unit_tel"
-                :placeholder="`请输入${item.fieldName}`"
-              />
-            </el-form-item>
-            <el-form-item
-              :key="index"
-              v-if="item.fieldKey == 'apply_post'"
-              :label="item.fieldName"
-              :required="item.required"
-              label-width="120px"
-              :prop="item.required ? item.fieldKey : ''"
-            >
-              <el-input
-                v-model="infoForm.apply_post"
-                :placeholder="`请输入${item.fieldName}`"
-              />
-            </el-form-item>
-            <el-form-item
-              :key="index"
-              v-if="item.fieldKey == 'major'"
-              :label="item.fieldName"
-              :required="item.required"
-              label-width="120px"
-              :prop="item.required ? item.fieldKey : ''"
-            >
-              <el-input
-                v-model="infoForm.major"
-                :placeholder="`请输入${item.fieldName}`"
-              />
-            </el-form-item>
-            <el-form-item
-              :key="index"
-              v-if="item.inputType == 2"
-              :label="item.fieldName"
-              label-width="120px"
-              :required="item.required"
-              :prop="item.required ? item.fieldKey : ''"
-            >
-            </el-form-item>
-            <el-form-item
-              :key="index"
-              v-if="item.inputType == 5"
-              :label="item.fieldName"
-              label-width="120px"
-              :required="item.required"
-              :prop="item.required ? item.fieldKey : ''"
-            >
-            </el-form-item>
-            <el-form-item
-              :key="index"
-              v-if="
-                item.inputType == 3 &&
-                item.fieldKey !== 'commitment_electr_signature'
-              "
-              :label="item.fieldName"
-              :required="item.required"
-              label-width="120px"
-              label-position="top"
-              :prop="item.required ? item.fieldKey : ''"
-            >
-              <text
-                v-if="item.fieldKey === 'recent_photos'"
-                style="
-                  color: #999999;
-                  position: absolute;
-                  top: 20rpx;
-                  left: 130rpx;
-                "
-                >竖向证件照 文件大小≤2M</text
-              >
-              <text
-                v-if="
-                  item.fieldKey === 'idcard_face_photo' ||
-                  item.fieldKey === 'idcard_national_photo'
-                "
-                style="
-                  color: #999999;
-                  position: absolute;
-                  top: 20rpx;
-                  left: 180rpx;
-                "
-              >
-                文件大小≤2M
-              </text>
-              <el-upload
-                :show-progress="false"
-                :max-size="2097152"
-                :ref="
-                  item.fieldKey === 'recent_photos'
-                    ? 'recent_photos'
-                    : item.fieldKey === 'idcard_face_photo'
-                    ? 'idcard_face_photo'
-                    : item.fieldKey === 'idcard_national_photo'
-                    ? 'idcard_national_photo'
-                    : ''
-                "
-                @on-list-change="
-                  item.fieldKey === 'recent_photos'
-                    ? changePhotoListHeader1($event)
-                    : item.fieldKey === 'idcard_face_photo'
-                    ? changePhotoListHeader2($event)
-                    : item.fieldKey === 'idcard_national_photo'
-                    ? changePhotoListHeader3($event)
-                    : ''
-                "
-                :auto-upload="false"
-                action="baidu.com"
-                custom-btn="true"
-                :file-list="
-                  item.fieldKey === 'recent_photos'
-                    ? fileList1
-                    : item.fieldKey === 'idcard_face_photo'
-                    ? fileList2
-                    : item.fieldKey === 'idcard_national_photo'
-                    ? fileList3
-                    : ''
-                "
-                width="120"
-                height="120"
-                size-type="['compressed']"
-                max-count="1"
-              >
-                <template v-slot:addBtn>
-                  <image
-                    :src="
-                      item.fieldKey === 'recent_photos'
-                        ? '/static/info_1.png'
-                        : item.fieldKey === 'idcard_face_photo'
-                        ? '/static/info_2.png'
-                        : item.fieldKey === 'idcard_national_photo'
-                        ? '/static/info_3.png'
-                        : ''
-                    "
-                    :style="
-                      item.fieldKey === 'recent_photos'
-                        ? 'width: 120rpx; height: 169rpx;'
-                        : item.fieldKey === 'idcard_face_photo'
-                        ? 'width: 120rpx; height: 82rpx;'
-                        : item.fieldKey === 'idcard_national_photo'
-                        ? 'width: 120rpx; height: 82rpx;'
-                        : ''
-                    "
-                  ></image>
-                </template>
-              </el-upload>
-            </el-form-item>
-            <view
-              :key="index"
-              v-if="
-                item.inputType == 3 &&
-                item.fieldKey === 'commitment_electr_signature'
-              "
-            >
-              <el-form-item
-                v-if="
-                  item.inputType == 3 &&
-                  item.fieldKey === 'commitment_electr_signature'
-                "
-                label="承诺书"
-                :required="item.required"
-                label-width="120px"
-                label-position="top"
-              >
-                <view style="line-height: 40rpx; text-indent: 2em">
-                  <text>
-                    本人自愿做出如下承诺:本人己仔细阅读《广东省住房和城乡建设厅关于推进住房和城乡建设领域施工现场专业人员职业培训工作的通知》
-                    全部内容并知晓和理解,本人的学历证书、身份证、工作年限、相片等所有资料完全真实、符合报名条件、资格审查要求和相关规定,本人在报名、审查、培训、测试等有关的事项中会严格道守相关规定和要求,如有虛假或与实际规定不符等情况造成的一切后果由本人承担。
-                  </text>
-                  <view style="line-height: 40rpx; text-indent: 2em"
-                    ><text>特此承诺!</text></view
-                  >
-                </view>
-              </el-form-item>
-              <el-form-item
-                v-if="
-                  item.inputType == 3 &&
-                  item.fieldKey === 'commitment_electr_signature'
-                "
-                label="签名板"
-                :required="item.required"
-                label-width="120px"
-                label-position="top"
-                :prop="item.required ? item.fieldKey : ''"
-              >
-                <view class="dis_stys">
-                  <text style="color: #999999">请在下方签名区进行签名</text>
-                  <text @click="retDraw" mode="">清空</text>
-                </view>
-                <view class="handCenter">
-                  <canvas
-                    v-if="!infoForm[item.fieldKey]"
-                    class="handWriting"
-                    disable-scroll="true"
-                    :catchtouchmove="true"
-                    canvas-id="handWriting"
-                  ></canvas>
-                  <view
-                    v-else
-                    style="width: 100%; height: 100%; position: relative"
-                  >
-                    <view class="ctoples">图片</view>
-                    <image
-                      style="width: 100%; height: 100%"
-                      :src="$method.splitImgHost(infoForm[item.fieldKey])"
-                      mode=""
-                    ></image>
-                  </view>
-                </view>
-              </el-form-item>
-            </view>
-          </template>
-        </el-form>
-      </div>
-    </el-dialog>
   </div>
 </template>
 
@@ -809,7 +516,6 @@ export default {
   name: "MyCourse",
   data() {
     return {
-      showInfoDetailModal: false,
       showRebuildDetailModal: false,
       gradeList: [],
       tabList: [],
@@ -820,27 +526,7 @@ export default {
         pageNum: 1,
         pageSize: 10,
       },
-      listData: [],
-      errorType: ["message"],
-      infoForm: {
-        name: "",
-        sex: "",
-        idcard: "",
-        telphone: "",
-        education: "",
-        school: "",
-        graduation_time: "",
-        work_unit: "",
-        unit_contact: "",
-        unit_tel: "",
-        apply_post: "",
-        major: "",
-        working_years: "",
-        recent_photos: "",
-        idcard_face_photo: "",
-        idcard_national_photo: "",
-        commitment_electr_signature: "",
-      },
+
       rebuildItems: [],
       rebuildItem: {},
       selectClassModal: false,
@@ -848,168 +534,6 @@ export default {
       courseList: [],
       selectItem: {},
       loading: null,
-      rules: {
-        name: [
-          {
-            required: true,
-            message: "请输入姓名",
-            trigger: ["change", "blur"],
-          },
-        ],
-        sex: [
-          {
-            required: true,
-            message: "请选择性别",
-            trigger: "change",
-          },
-        ],
-        idcard: [
-          {
-            required: true,
-            message: "请输入身份证号",
-            trigger: ["change", "blur"],
-          },
-          {
-            validator: (rule, value, callback) => {
-              return this.$u.test.idCard(value);
-            },
-            message: "身份证号不正确",
-            trigger: ["change", "blur"],
-          },
-        ],
-        telphone: [
-          {
-            required: true,
-            message: "请输入手机号码",
-            trigger: ["change", "blur"],
-          },
-          {
-            validator: (rule, value, callback) => {
-              var vartest = /^([0-9]{3,4}-)?[0-9]{7,8}$/;
-              if (this.$u.test.mobile(value) || vartest.test(value)) {
-                return true;
-              } else {
-                return false;
-              }
-            },
-            message: "手机号码不正确",
-            trigger: ["change", "blur"],
-          },
-        ],
-        education: [
-          {
-            required: true,
-            message: "请选择学历",
-            trigger: "change",
-          },
-        ],
-        school: [
-          {
-            required: true,
-            message: "请输入毕业院校",
-            trigger: ["change", "blur"],
-          },
-        ],
-        graduation_time: [
-          {
-            required: true,
-            message: "请选择毕业时间",
-            trigger: "change",
-          },
-        ],
-        work_unit: [
-          {
-            required: true,
-            message: "请输入工作单位",
-            trigger: ["change", "blur"],
-          },
-        ],
-        unit_contact: [
-          {
-            required: true,
-            message: "请输入单位联系人",
-            trigger: ["change", "blur"],
-          },
-        ],
-        unit_tel: [
-          {
-            required: true,
-            message: "请输入单位联系电话",
-            trigger: ["change", "blur"],
-          },
-          {
-            validator: (rule, value, callback) => {
-              var vartest = /^([0-9]{3,4}-)?[0-9]{7,8}$/;
-              var vartest1 = /^([0-9]{3,4})?[0-9]{7,8}$/;
-              if (
-                this.$u.test.mobile(value) ||
-                vartest.test(value) ||
-                vartest1.test(value)
-              ) {
-                return true;
-              } else {
-                return false;
-              }
-            },
-            message: "单位联系电话不正确",
-            trigger: ["change", "blur"],
-          },
-        ],
-        apply_post: [
-          {
-            required: true,
-            message: "请输入报名岗位",
-            trigger: ["change", "blur"],
-          },
-        ],
-        major: [
-          {
-            required: true,
-            message: "请输入所学专业",
-            trigger: ["change", "blur"],
-          },
-        ],
-        working_years: [
-          {
-            required: true,
-            message: "请选择工作年限",
-            trigger: "change",
-          },
-        ],
-        recent_photos: [
-          {
-            required: true,
-            message: "请上传个人近照",
-            trigger: ["change", "blur"],
-          },
-        ],
-        idcard_face_photo: [
-          {
-            required: true,
-            message: "请上传身份证人像面",
-            trigger: ["change", "blur"],
-          },
-        ],
-        idcard_national_photo: [
-          {
-            required: true,
-            message: "请上传身份证国徽面",
-            trigger: ["change", "blur"],
-          },
-        ],
-        commitment_electr_signature: [
-          {
-            required: true,
-            message: "请签写承诺书电子签",
-            trigger: ["change", "blur"],
-          },
-        ],
-      },
-
-      fileList1: [], //个人近照
-      fileList2: [], //人像
-      fileList3: [], //国徽
-      dictObj: null,
     };
   },
   computed: {
@@ -1019,14 +543,6 @@ export default {
     this.sysTime = this.$tools.timest();
     await this.orderUserEduList();
     this.courseGoodsList();
-    this.dictList();
-
-    setTimeout(() => {
-      if (location.href == "http://localhost:8080/person-center/my-course") {
-        this.showInfoDetailModal = true;
-        this.getInfo(this.courseList[0]);
-      }
-    }, 2000);
   },
   methods: {
     tabChange(e) {
@@ -1060,33 +576,7 @@ export default {
           });
       });
     },
-    returnName(key) {
-      if (key === "sex") {
-        if (this.infoForm[key]) {
-          return this.dictObj["sys_user_sex"][Number(this.infoForm[key])];
-        } else {
-          return "请选择性别";
-        }
-      }
-      if (key === "education") {
-        if (this.infoForm[key]) {
-          return this.dictObj["edu_level"][Number(this.infoForm[key])];
-        } else {
-          return "请选择学历";
-        }
-      }
-      if (key === "working_years") {
-        if (this.infoForm[key]) {
-          return this.dictObj["working_years"][Number(this.infoForm[key])];
-        } else {
-          return "请选择工作年限";
-        }
-      }
-    },
-    retDraw() {
-      this.handwriting.retDraw();
-      this.$set(this.form, "commitment_electr_signature", "");
-    },
+
     currentChange(e) {
       this.param.pageNum = e;
       this.courseGoodsList();
@@ -1248,6 +738,19 @@ export default {
       }
     },
 
+    appBeforeAddress(item) {
+      this.$request
+        .appBeforeAddress({
+          orderGoodsId: item.orderGoodsId,
+        })
+        .then((res) => {
+          window.open(res.url, "_blank");
+        })
+        .catch((err) => {
+          this.$message.warning(err.msg);
+        });
+    },
+
     rebuildSubmit() {
       this.$confirm(
         "如对审核结果有异议,请勿点击确认重学。致电020-87085982咨询",
@@ -1286,201 +789,7 @@ export default {
       this.gradeValue = -1;
       this.goodsGradeList(item.goodsId);
     },
-    /**
-     *  getbaseprofiletpgetInfo接口返回值result.data.data不存在的话说明是第一次填写资料
-     */
-    getInfo(item) {
-      var self = this;
-      this.$request.getbaseprofiletpId(item.goodsId).then((res) => {
-        self.listData = JSON.parse(res.data.keyValue);
-
-        self.listData.forEach((item) => {
-          if (item.fieldKey == "idcard") {
-            this.infoForm.idcard = this.userInfo.idCard;
-          }
-          if (item.fieldKey == "telphone") {
-            this.infoForm.telphone = this.userInfo.telphone;
-          }
 
-          if (item.fieldKey == "name") {
-            this.infoForm.name = this.userInfo.realname || "";
-          }
-        });
-        self.isRequired = self.listData.every((ims) => {
-          return ims.required === false;
-        });
-        this.$nextTick(() => {
-          this.agreementModal = true;
-        });
-        self.$request
-          .getbaseprofiletpgetInfo({
-            goodsId: item.goodsId,
-            orderGoodsId: item.orderGoodsId,
-          })
-          .then((result) => {
-            if (result.code === 200) {
-              if (!result.data) {
-                self.$request
-                  .getbaseprofiletplistProfile({
-                    pageNum: 1,
-                    pageSize: 1,
-                    status: 1,
-                  })
-                  .then((kit) => {
-                    if (kit.rows.length) {
-                      var ajson = JSON.parse(kit.rows[0].keyValue);
-                      self.listData.forEach((zyitem, zyindex) => {
-                        for (let k in ajson) {
-                          if (zyitem.fieldKey == k && ajson[k].value) {
-                            if (k === "sex") {
-                              const sexIndex =
-                                self.dictObj["sys_user_sex"].indexOf(
-                                  ajson[k].value
-                                ) + "";
-                              self.$set(self.infoForm, k, sexIndex);
-                            } else if (k === "education") {
-                              const sexIndex =
-                                self.dictObj["edu_level"].indexOf(
-                                  ajson[k].value
-                                ) + "";
-                              self.$set(self.infoForm, k, sexIndex);
-                            } else if (k === "working_years") {
-                              const sexIndex =
-                                self.dictObj["working_years"].indexOf(
-                                  ajson[k].value
-                                ) + "";
-                              self.$set(self.infoForm, k, sexIndex);
-                            } else if (k === "recent_photos") {
-                              self.$set(self.infoForm, k, ajson[k].value);
-                              if (ajson[k].value) {
-                                self.fileList1 = [
-                                  {
-                                    url: baseUrls.BASE_IMG_URL + ajson[k].value,
-                                  },
-                                ];
-                              }
-                            } else if (k === "idcard_face_photo") {
-                              self.$set(self.infoForm, k, ajson[k].value);
-                              if (ajson[k].value) {
-                                self.fileList2 = [
-                                  {
-                                    url: baseUrls.BASE_IMG_URL + ajson[k].value,
-                                  },
-                                ];
-                              }
-                            } else if (k === "idcard_national_photo") {
-                              self.$set(self.infoForm, k, ajson[k].value);
-                              if (ajson[k].value) {
-                                self.fileList3 = [
-                                  {
-                                    url: baseUrls.BASE_IMG_URL + ajson[k].value,
-                                  },
-                                ];
-                              }
-                            } else {
-                              if (k === "name") {
-                                self.$set(
-                                  self.infoForm,
-                                  k,
-                                  this.$store.state.userInfo.realname
-                                );
-                              } else if (k === "idcard") {
-                                self.$set(
-                                  self.infoForm,
-                                  k,
-                                  this.$store.state.userInfo.idCard
-                                );
-                              } else if (k === "telphone") {
-                                self.$set(
-                                  self.infoForm,
-                                  k,
-                                  this.$store.state.userInfo.telphone
-                                );
-                              } else if (k !== "commitment_electr_signature") {
-                                self.$set(self.infoForm, k, ajson[k].value);
-                              }
-                            }
-                          }
-                        }
-                      });
-                    }
-                  });
-              }
-              if (result.data && result.data.status === 3) {
-                self.remark = result.data.text;
-                self.remarkStatus = true;
-                self.id = result.data.id;
-                var arrays = JSON.parse(result.data.keyValue);
-                self.copyData = JSON.parse(JSON.stringify(arrays));
-                for (let k in arrays) {
-                  if (k === "sex") {
-                    if (arrays[k].value) {
-                      const sexIndex =
-                        self.dictObj["sys_user_sex"].indexOf(arrays[k].value) +
-                        "";
-                      self.$set(self.infoForm, k, sexIndex);
-                    }
-                  } else if (k === "education") {
-                    if (arrays[k].value) {
-                      const sexIndex =
-                        self.dictObj["edu_level"].indexOf(arrays[k].value) + "";
-                      self.$set(self.infoForm, k, sexIndex);
-                    }
-                  } else if (k === "working_years") {
-                    if (arrays[k].value) {
-                      const sexIndex =
-                        self.dictObj["working_years"].indexOf(arrays[k].value) +
-                        "";
-                      self.$set(self.infoForm, k, sexIndex);
-                    }
-                  } else if (k === "recent_photos") {
-                    self.$set(self.infoForm, k, arrays[k].value);
-                    if (arrays[k].value) {
-                      self.fileList1 = [
-                        { url: baseUrls.BASE_IMG_URL + arrays[k].value },
-                      ];
-                    }
-                  } else if (k === "idcard_face_photo") {
-                    self.$set(self.infoForm, k, arrays[k].value);
-                    if (arrays[k].value) {
-                      self.fileList2 = [
-                        { url: baseUrls.BASE_IMG_URL + arrays[k].value },
-                      ];
-                    }
-                  } else if (k === "idcard_national_photo") {
-                    self.$set(self.infoForm, k, arrays[k].value);
-                    if (arrays[k].value) {
-                      self.fileList3 = [
-                        { url: baseUrls.BASE_IMG_URL + arrays[k].value },
-                      ];
-                    }
-                  } else {
-                    self.$set(self.infoForm, k, arrays[k].value);
-                  }
-                }
-              } else if (
-                result.data &&
-                (result.data.status === 1 || result.data.status === 2)
-              ) {
-                uni.showModal({
-                  showCancel: false,
-                  content:
-                    result.data.status === 1
-                      ? "该商品审核资料已通过,不可重复提交资料"
-                      : result.data.status === 2
-                      ? "该商品审核资料处于待审核状态,不可重复提交资料"
-                      : "请联系管理员",
-                  success: function (k) {
-                    if (k.confirm) {
-                      uni.navigateBack();
-                    }
-                  },
-                });
-              }
-            }
-          });
-      });
-    },
     goodsGradeList(id) {
       let self = this;
       this.$request
@@ -1559,24 +868,6 @@ export default {
       });
     },
 
-    dictList() {
-      this.$request.dictList().then((res) => {
-        if (res.code === 200) {
-          let newList = {};
-          let list = res.data;
-          for (let i = 0; i < list.length; i++) {
-            let item = list[i];
-            if (newList.hasOwnProperty(item.dictType)) {
-              newList[item.dictType].push(item.dictLabel);
-            } else {
-              newList[item.dictType] = [item.dictLabel];
-            }
-          }
-          this.dictObj = newList;
-        }
-      });
-    },
-
     courseGoodsList() {
       let param = JSON.parse(JSON.stringify(this.param));
 
@@ -1625,19 +916,6 @@ export default {
           });
         });
     },
-
-    getarrays(key) {
-      if (key === "sex") {
-        console.log(this.dictObj);
-        return this.dictObj["sys_user_sex"];
-      }
-      if (key === "education") {
-        return this.dictObj["edu_level"];
-      }
-      if (key === "working_years") {
-        return this.dictObj["working_years"];
-      }
-    },
   },
 };
 </script>
@@ -2003,10 +1281,5 @@ export default {
       }
     }
   }
-
-  .info {
-    &__content {
-    }
-  }
 }
 </style>

+ 1 - 1
src/pages/person-center/my-examination/index.vue

@@ -43,7 +43,7 @@
                   </div>
                 </div>
                 <el-button
-                  v-if="isShowFun(item)"
+                  v-if="isShowFun(item) && item.subscribeStatus == 1"
                   type="primary"
                   plain
                   round

+ 43 - 4
src/pages/person-center/my-invoice/add/index.vue

@@ -162,11 +162,14 @@ export default {
           },
           {
             validator: (rule, value, callback) => {
-              // 上面有说,返回true表示校验通过,返回false表示不通过
-              // this.$u.test.mobile()就是返回true或者false的
-              return this.$u.test.mobile(value);
+              var reg_tel =
+                /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/;
+              if (reg_tel.test(value)) {
+                return callback();
+              } else {
+                return callback(new Error("手机号码格式不正确"));
+              }
             },
-            message: "手机号码格式不正确",
             // 触发器可以同时用blur和change
             trigger: ["change"],
           },
@@ -202,6 +205,18 @@ export default {
             // 可以单个或者同时写两个触发验证方式
             trigger: ["change"],
           },
+          {
+            validator: (rule, value, callback) => {
+              var reg = /(^[0-9A-Z]{15,20}$)/;
+              if (reg.test(value)) {
+                return callback();
+              } else {
+                return callback(new Error("纳税登记号格式不正确"));
+              }
+            },
+            // 触发器可以同时用blur和change
+            trigger: ["change"],
+          },
         ],
         companyAddress: [
           {
@@ -226,6 +241,17 @@ export default {
             // 可以单个或者同时写两个触发验证方式
             trigger: ["change"],
           },
+          {
+            validator: (rule, value, callback) => {
+              var reg = /[\u4E00-\u9FA5]+/;
+              if (reg.test(value)) {
+                return callback();
+              } else {
+                return callback(new Error("开户银行名称不正确"));
+              }
+            },
+            trigger: ["change", "blur"],
+          },
         ],
         bankAccount: [
           {
@@ -234,6 +260,19 @@ export default {
             // 可以单个或者同时写两个触发验证方式
             trigger: ["change"],
           },
+          {
+            validator: (rule, value, callback) => {
+              // 上面有说,返回true表示校验通过,返回false表示不通过
+              var reg = /^[1-9]{1}(\d{15}|\d{18})$/;
+              if (reg.test(value)) {
+                return callback();
+              } else {
+                return callback(new Error("银行卡号格式不正确"));
+              }
+            },
+            // 触发器可以同时用blur和change
+            trigger: ["change"],
+          },
         ],
         receivingAddress: [
           {

+ 26 - 29
src/pages/person-center/my-invoice/index/index.vue

@@ -151,6 +151,12 @@
           invoiceDetail.invoiceTitle
         }}</el-descriptions-item>
 
+        <el-descriptions-item label="开票订单"> </el-descriptions-item>
+
+        <el-descriptions-item label="开票金额">
+          ¥ {{ invoiceDetail.amount }}
+        </el-descriptions-item>
+
         <template v-if="invoiceDetail.type == 2">
           <el-descriptions-item label="纳税登记号">
             {{ invoiceDetail.taxRegistryNumber || "" }}
@@ -175,9 +181,7 @@
           }}</el-descriptions-item
           ><el-descriptions-item label="收件手机">{{
             invoiceDetail.receivingTel || ""
-          }}</el-descriptions-item
-          ><el-descriptions-item label="开票订单" :span="2">
-          </el-descriptions-item>
+          }}</el-descriptions-item>
         </template>
       </el-descriptions>
 
@@ -339,7 +343,7 @@ export default {
 
     orderInvoiceList() {
       this.$request
-        .orderInvoiceList()
+        .orderInvoiceList(this.params)
         .then((res) => {
           this.tableData = res.rows;
           this.total = res.total;
@@ -366,32 +370,25 @@ export default {
       // 创建虚拟a标签
 
       let url = this.$tools.splitImgHost(row.invoiceImg);
-      let name =
-        row.invoiceImg.substring(row.invoiceImg.lastIndexOf("/")) +
-        new Date().valueOf();
-      var a = document.createElement("a");
-      var event = new MouseEvent("click");
-      a.download = name;
-      a.href = url;
-      a.dispatchEvent(event);
+      let name = row.invoiceImg.substring(row.invoiceImg.lastIndexOf("/") + 1);
 
-      // var image = new Image();
-      // // 解决跨域 Canvas 污染问题,
-      // image.setAttribute("crossorigin", "anonymous");
-      // image.onload = function () {
-      //   var canvas = document.createElement("canvas");
-      //   canvas.width = image.width;
-      //   canvas.height = image.height;
-      //   var context = canvas.getContext("2d");
-      //   context.drawImage(image, 0, 0, image.width, image.height);
-      //   var url = canvas.toDataURL("image/png"); //将图片格式转为base64
-      //   var a = document.createElement("a"); // 生成一个a元素
-      //   var event = new MouseEvent("click"); // 创建一个单击事件
-      //   a.download = name; // 设置图片名称
-      //   a.href = url; // 将生成的URL设置为a.href属性
-      //   a.dispatchEvent(event); // 触发a的单击事件
-      // };
-      // image.src = url + "?time=" + Date.now(); //注意,这里是灵魂,否则依旧会产生跨域问题
+      var image = new Image();
+      // 解决跨域 Canvas 污染问题,
+      image.setAttribute("crossorigin", "anonymous");
+      image.onload = function () {
+        var canvas = document.createElement("canvas");
+        canvas.width = image.width;
+        canvas.height = image.height;
+        var context = canvas.getContext("2d");
+        context.drawImage(image, 0, 0, image.width, image.height);
+        var url = canvas.toDataURL("image/png"); //将图片格式转为base64
+        var a = document.createElement("a"); // 生成一个a元素
+        var event = new MouseEvent("click"); // 创建一个单击事件
+        a.download = name; // 设置图片名称
+        a.href = url; // 将生成的URL设置为a.href属性
+        a.dispatchEvent(event); // 触发a的单击事件
+      };
+      image.src = url + "?time=" + Date.now(); //注意,这里是灵魂,否则依旧会产生跨域问题
     },
   },
 };

+ 43 - 14
src/pages/person-center/my-message/index.vue

@@ -20,8 +20,22 @@
           </div>
 
-          <div class="btn btn--red">清空</div>
-          <div class="btn" @click="uploadMsgStatus">全部标为已读</div>
+          <el-button
+            type="danger"
+            @click="clearMsg"
+            round
+            plain
+            class="btn btn--red"
+            >清空</el-button
+          >
+          <el-button
+            type="primary"
+            round
+            plain
+            class="btn"
+            @click="uploadMsgStatus"
+            >全部标为已读</el-button
+          >
         </div>
         <div class="content__body">
           <div class="no-data" v-if="list.length == 0">暂无消息</div>
@@ -313,21 +327,25 @@ export default {
      * 全部已读
      */
     uploadMsgStatus() {
-      this.$request
-        .courseappinformUserupdateAllRead({
-          systemStatus: this.formData.systemStatusList,
+      this.$confirm("确定全部标记为已读?")
+        .then((_) => {
+          this.$request
+            .courseappinformUserupdateAllRead({
+              systemStatus: this.formData.systemStatusList,
+            })
+            .then((res) => {
+              this.$message.success("成功");
+              this.getappinformUserlist();
+            });
         })
-        .then((res) => {
-          this.$message.success("成功");
-          this.getappinformUserlist();
-        });
+        .catch((_) => {});
     },
     currentChange(e) {
       this.formData.pageNum = e;
       this.getappinformUserlist();
     },
     tabChange(e) {
-      if (this.activeName == e.name) return;
+      if (this.formData.systemStatusList == e.name) return;
       this.formData.systemStatusList = e.name;
       this.formData.pageNum = 1;
       this.getappinformUserlist();
@@ -346,6 +364,20 @@ export default {
         });
     },
 
+    /**
+     * 清空消息
+     */
+    clearMsg() {
+      this.$confirm("清空消息吗?")
+        .then((_) => {
+          this.$request.appInformUserRemoveAll().then((res) => {
+            this.formData.pageNum = 1;
+            this.getappinformUserlist();
+          });
+        })
+        .catch((_) => {});
+    },
+
     getNames(int) {
       var arsty = "";
       switch (int) {
@@ -801,16 +833,13 @@ export default {
           margin: 0 14px;
           width: 122px;
           height: 32px;
-          background: #ffffff;
-          border: 1px solid #3f8dfd;
           border-radius: 16px;
-          color: #3f8dfd;
+          padding: 0;
           text-align: center;
           line-height: 30px;
           font-size: 16px;
           &--red {
             border-color: #ff3b30;
-            color: #ff3b30;
           }
         }
       }

+ 1 - 1
src/pages/person-center/my-order/index.vue

@@ -268,6 +268,7 @@ export default {
       if (this.activeName == "4") {
         //退款订单
         this.formData.status = "";
+        this.formData.pageNum = 1;
         this.orderRefundList();
       } else {
         //其他订单
@@ -358,7 +359,6 @@ export default {
 
     orderRefundList() {
       this.showLoading();
-      this.formData.pageNum = 1;
       this.formData.orderStatus = "";
       this.$request
         .orderRefundList(this.formData)

+ 1 - 1
src/store/index.js

@@ -82,7 +82,7 @@ export default new Vuex.Store({
         login.getInfo().then(res => {
           context.commit('setUserInfo', res.data)
           resolve()
-        })
+        }).catch(err => {})
       })
     },
     /**

Daži faili netika attēloti, jo izmaiņu fails ir pārāk liels