caichengyu 9 kuukautta sitten
vanhempi
commit
9983f219e4

+ 2 - 2
.env.development

@@ -5,8 +5,8 @@ VUE_APP_TITLE =广州市建设工程保险风险管理协会
 ENV = 'development'
 
 # 开发环境
-VUE_APP_BASE_API = 'http://192.168.1.121:8032/'
-VUE_APP_IMG_API = 'http://192.168.1.121:8032'
+VUE_APP_BASE_API = 'http://192.168.1.121:8033/'
+VUE_APP_IMG_API = 'http://192.168.1.121:8033'
 # 开发环境-web端地址
 VUE_APP_JUMP = 'http://192.168.20:8084'
 

BIN
dist0729.rar


+ 6 - 0
package-lock.json

@@ -20634,6 +20634,12 @@
       "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==",
       "dev": true
     },
+    "weixin-js-sdk": {
+      "version": "1.6.5",
+      "resolved": "https://registry.npmjs.org/weixin-js-sdk/-/weixin-js-sdk-1.6.5.tgz",
+      "integrity": "sha512-Gph1WAWB2YN/lMOFB/ymb+hbU/wYazzJgu6PMMktCy9cSCeW5wA6Zwt0dpahJbJ+RJEwtTv2x9iIu0U4enuVSQ==",
+      "dev": true
+    },
     "which": {
       "version": "1.3.1",
       "resolved": "https://registry.npmmirror.com/which/-/which-1.3.1.tgz",

+ 2 - 1
package.json

@@ -52,7 +52,8 @@
     "uglifyjs-webpack-plugin": "^2.2.0",
     "vue-lazyload": "^1.3.3",
     "vue-template-compiler": "^2.6.11",
-    "webpack-cli": "^5.1.4"
+    "webpack-cli": "^5.1.4",
+    "weixin-js-sdk": "^1.6.5"
   },
   "eslintConfig": {
     "root": true,

+ 30 - 3
src/api/XfWebApi.js

@@ -53,7 +53,7 @@ export default {
             url: '/api/XfWebApi/GetNewsList',
             method: 'get',
             params: data,
-            noToken: true
+            tokenName
         })
     },
     //新闻详情
@@ -71,7 +71,7 @@ export default {
             url: '/api/XfWebApi/GetNewPositionList',
             method: 'get',
             params: data,
-            noToken: true
+            tokenName
         })
     },
     //获取首页广告轮播Banner列表
@@ -152,7 +152,7 @@ export default {
             url: '/api/XfWebApi/GetNewsReList',
             method: 'get',
             params: data,
-            noToken: true
+            tokenName
         })
     },
     //历史访问量
@@ -201,4 +201,31 @@ export default {
             tokenName
         })
     },
+    //获取微信jsapi配置
+    XfWebApiGetWxConfig(data) {
+        return request({
+            url: '/api/XfWebApi/GetWxConfig',
+            method: 'get',
+            params: data,
+            noToken: true
+        })
+    },
+     //证书列表
+     XfWebApiGetCertList(data) {
+        return request({
+            url: '/api/XfWebApi/GetCertList',
+            method: 'get',
+            params: data,
+            tokenName
+        })
+    },
+    //下载证书
+    XfWebApiDownCert(data) {
+       return request({
+           url: '/api/XfWebApi/DownCert',
+           method: 'get',
+           params: data,
+           tokenName
+       })
+   },
 }

BIN
src/assets/images/xh.cdd2de7c.png


+ 13 - 5
src/components/header/index.vue

@@ -47,7 +47,7 @@
                 v-if="item.WebUrl && item.MenuId !== 1"
                 :href="item.WebUrl"
                 target="_blank"
-                style="color: #fff; display: block"
+                style="color: rgb(0, 0, 0); display: block"
                 >{{ item.Name }}</a
               ><span v-else>{{ item.Name }}</span></el-menu-item
             >
@@ -69,7 +69,7 @@
                     v-if="items.WebUrl"
                     :href="items.WebUrl"
                     target="_blank"
-                    style="color: #fff; display: block"
+                    style="color: rgb(0, 0, 0);display: block"
                     >{{ items.Name }}</a
                   ><span v-else>{{ items.Name }}</span></el-menu-item
                 ><el-submenu
@@ -88,7 +88,7 @@
                         v-if="itemsxt.WebUrl"
                         :href="itemsxt.WebUrl"
                         target="_blank"
-                        style="color: #fff; display: block"
+                        style="color: rgb(0, 0, 0); display: block"
                         >{{ itemsxt.Name }}</a
                       ><span v-else>{{ itemsxt.Name }}</span></el-menu-item
                     >
@@ -101,13 +101,14 @@
         <div class="nav_footerBox">
           <!-- <el-button type="text" @click="openMembership">会员申请</el-button>
           <el-button type="text" @click="contribute">投稿中心</el-button> -->
+          <!-- <el-button type="text" @click="certsel">证书查询</el-button> -->
           <el-button type="text" @click="openSuggestion">网站建议</el-button>
           <br />
-          <!-- <template v-if="$store.state.token">
+          <template v-if="$store.state.token">
             <el-button type="text" @click="openVip">会员中心</el-button>
             <el-button type="text" @click="outLogin">退出</el-button>
           </template>
-          <el-button v-else type="text" @click="login">请登录</el-button> -->
+          <el-button v-else type="text" @click="login">会员入口</el-button>
         </div>
       </div>
     </van-popup>
@@ -249,6 +250,13 @@ export default {
         this.login();
       }
     },
+    //证书查询入口
+    certsel() {
+        this.show = false;
+        this.$router.push({
+          path: "/certsearch",
+        });
+    },
     outLogin() {
       this.show = false;
       this.$message.success("已退出登录");

+ 22 - 20
src/components/userInfo/index.vue

@@ -17,7 +17,7 @@
             label-width="80px"
             class="demo-ruleForm"
           >
-            <el-form-item label="登录账号" prop="Account">
+          <el-form-item label="登录账号" prop="Account">
               <el-input
                 readonly
                 v-model.trim="ruleForm.Account"
@@ -27,19 +27,23 @@
                 readonly
                 v-model.trim="ruleForm.MemberName"
               ></el-input> </el-form-item
-            ><el-form-item label="负责人" prop="LegalPerson">
+            ><el-form-item label="单位性质" prop="CompanyMent">
               <el-input
-                v-model.trim="ruleForm.LegalPerson"
+                v-model.trim="ruleForm.CompanyMent"
               ></el-input> </el-form-item
-            ><el-form-item label="手机号" prop="Mobile">
+            ><el-form-item label="主营业务" prop="Mainbusiness">
               <el-input
-                v-model.trim="ruleForm.Mobile"
+                v-model.trim="ruleForm.Mainbusiness"
               ></el-input> </el-form-item
-            ><el-form-item label="入会代表" prop="Operator">
+            ><el-form-item label="单位注册地" prop="RegAddress">
               <el-input
-                v-model.trim="ruleForm.Operator"
+                v-model.trim="ruleForm.RegAddress"
               ></el-input> </el-form-item
-            ><el-form-item label="联系电话" prop="OperatorPhone">
+            ><el-form-item label="联络人姓名" prop="DailyOperator">
+              <el-input
+                v-model.trim="ruleForm.DailyOperator"
+              ></el-input> </el-form-item
+            ><el-form-item label="联系人联系电话" prop="OperatorPhone">
               <el-input
                 v-model.trim="ruleForm.OperatorPhone"
               ></el-input> </el-form-item
@@ -122,9 +126,10 @@ export default {
       ruleForm: {
         Account: "",
         MemberName: "",
-        LegalPerson: "",
-        Mobile: "",
-        Operator: "",
+        CompanyMent: "",
+        Mainbusiness: "",
+        RegAddress: "",
+        DailyOperator: "",
         OperatorPhone: "",
       },
       passForm: {
@@ -133,12 +138,8 @@ export default {
         againNewpwd: "",
       },
       rules: {
-        LegalPerson: [
-          { required: true, message: "请输入负责人", trigger: "blur" },
-        ],
-        Mobile: [{ required: true, message: "请输入手机号", trigger: "blur" }],
-        Operator: [
-          { required: true, message: "请输入入会代表", trigger: "blur" },
+        DailyOperator: [
+          { required: true, message: "请输入联络人", trigger: "blur" },
         ],
         OperatorPhone: [
           { required: true, message: "请输入联系电话", trigger: "blur" },
@@ -172,9 +173,10 @@ export default {
         this.ruleForm = {
           Account: this.$store.state.userInfo.Account,
           MemberName: this.$store.state.userInfo.MemberName,
-          LegalPerson: this.$store.state.userInfo.LegalPerson,
-          Mobile: this.$store.state.userInfo.Mobile,
-          Operator: this.$store.state.userInfo.Operator,
+          CompanyMent: this.$store.state.userInfo.CompanyMent,
+          Mainbusiness: this.$store.state.userInfo.Mainbusiness,
+          RegAddress: this.$store.state.userInfo.RegAddress,
+          DailyOperator: this.$store.state.userInfo.DailyOperator,
           OperatorPhone: this.$store.state.userInfo.OperatorPhone,
         };
         this.passForm = {

+ 11 - 0
src/main.js

@@ -7,6 +7,7 @@ import './assets/font/index.scss'
 import './utils/element';
 import './utils/vant';
 import './utils/permission'
+import './utils/wx'
 import api from '@/api/index'
 import methods from '@/utils/methods'
 import Directives from '@/utils/directives'
@@ -22,3 +23,13 @@ new Vue({
   store,
   render: h => h(App)
 }).$mount('#app')
+
+// main.js 或其他入口文件
+Vue.mixin({
+  mounted() {
+    // 如果组件有title属性,则设置为页面标题
+    if (this.$options.title) {
+      document.title = this.$options.title;
+    }
+  }
+});

+ 13 - 2
src/router/index.js

@@ -27,7 +27,7 @@ const routes = [
       {
         path: 'menuList',
         component: () => import('@/views/menuList/index'),
-        meta: { title: '其他', icon: '', affix: true }
+        meta: { title: '广州市建设工程保险风险管理协会', icon: '', affix: true }
       },
       {
         path: 'info',
@@ -45,6 +45,12 @@ const routes = [
         component: () => import('@/views/contribute/index'),
         meta: { title: '投稿中心', icon: '', affix: true }
       },
+      {
+        path: 'certsearch',
+        name: 'certsearch',
+        component: () => import('@/views/certsearch/index'),
+        meta: { title: '成绩查询', icon: '', affix: true }
+      },
     ]
   },
   {
@@ -72,5 +78,10 @@ const router = new VueRouter({
   },
   routes
 })
-
+router.beforeEach((to, from, next) => {
+  if (to.meta && to.meta.title) {
+    document.title = to.meta.title; // 设置页面标题
+  }
+  next();
+});
 export default router

+ 54 - 0
src/utils/methods.js

@@ -152,4 +152,58 @@ export default {
             (item) => !res.has(item[uniId]) && res.set(item[uniId], 1)
         );
     },
+    downloadPicBase(msg) {
+        var baseUrl =BASE_IMG_URL 
+		
+		let imgsrc =
+			baseUrl + msg;
+        var image = new Image()
+            // 解决跨域canvas污染问题
+            image.setAttribute('crossOrigin', 'anonymous')
+            image.onload = function () {
+                let canvas = document.createElement('canvas')
+                canvas.width = image.width
+                canvas.height = image.height
+                let context = canvas.getContext('2d')
+                context.drawImage(image, 0, 0, image.width, image.height)
+                let url = canvas.toDataURL('image/png') // 得到图片的base64编码数据
+                let a = document.createElement('a')
+                a.download = 'download'
+                a.href = url
+                a.click()
+            }
+        image.src = imgsrc
+    },
+     //base64转blob
+   base64ToBlob(code) {
+    const parts = code.split(';base64,');
+    const contentType = parts[0].split(':')[1];
+    const raw = window.atob(parts[1]);
+    const rawLength = raw.length;
+    const uInt8Array = new Uint8Array(rawLength);
+    for (let i = 0; i < rawLength; ++i) {
+      uInt8Array[i] = raw.charCodeAt(i);
+    }
+    return new Blob([uInt8Array], { type: contentType });
+  },
+
+//下载
+downloadbase64(fileName, content) {
+    const blob = this.base64ToBlob(content); // new Blob([content]);
+    if (window.navigator.msSaveOrOpenBlob) {
+      navigator.msSaveBlob(blob, fileName);
+    } else {
+      const link = document.createElement('a');
+      link.href = window.URL.createObjectURL(blob);
+      link.download = fileName;
+
+      //此写法兼容可火狐浏览器
+      document.body.appendChild(link);
+      const evt = document.createEvent("MouseEvents");
+      evt.initEvent("click", false, false);
+      link.dispatchEvent(evt);
+      document.body.removeChild(link);
+    }
+  },
+
 }

+ 61 - 0
src/utils/wx.js

@@ -0,0 +1,61 @@
+import axios from "axios";
+import wx from 'weixin-js-sdk';
+import { BASE_URL } from "@/utils/request"
+//初始化微信sdk
+const wxShowMenu = shareData => {
+    return new Promise((resolve, reject) => {
+        axios
+            .get(BASE_URL+"api/XfWebApi/GetWxConfig?url="+shareData.cururl) //请求你们公司后台的接口 获取相关的配置
+            .then(
+                res => {
+                    var getMsg = res.data.Data;
+                    //  console.log("微信配置----------",res);
+                    wx.config({
+                        debug: false, //生产环境需要关闭debug模式  测试环境下可以设置为true 可以在开发者工具中查看问题
+                        appId: getMsg.appId, //appId通过微信服务号后台查看
+                        timestamp: getMsg.timestamp, //生成签名的时间戳
+                        nonceStr: getMsg.nonceStr, //生成签名的随机字符串
+                        signature: getMsg.signature, //签名
+                        jsApiList: [ //需要调用的JS接口列表
+                            "updateAppMessageShareData", //自定义“分享给朋友”及“分享到QQ”按钮的分享内容(1.4.0) 新接口
+                            "updateTimelineShareData", //自定义“分享到朋友圈”及“分享到QQ空间”按钮的分享内容(1.4.0) 老接口
+                            "onMenuShareTimeline", //分享到朋友圈 老接口
+                            "onMenuShareAppMessage",//分享给盆友 老接口
+                        ]
+                    });
+                    wx.error(function (res) {
+                        //alert(JSON.stringify(res))
+                        console.log(res)
+                        // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
+                    });
+                    wx.ready(function () {
+                        wx.onMenuShareAppMessage({
+                            title: shareData.tTitle,
+                            link: shareData.timeLineLink,
+                            imgUrl: shareData.imgUrl,
+                            desc: shareData.tContent,
+                            success: function () { }
+                        });
+                        wx.onMenuShareQQ({
+                            title: shareData.tTitle,
+                            link: shareData.timeLineLink,
+                            imgUrl: shareData.imgUrl,
+                            desc: shareData.tContent,
+                            success: function () { }
+                        });
+                        wx.onMenuShareTimeline({
+                            title: shareData.tTitle,
+                            link: shareData.timeLineLink,
+                            imgUrl: shareData.imgUrl,
+                            success: function () { }
+                        });
+                    });
+                    resolve(res);
+                },
+                err => {
+                    reject(err);
+                }
+            );
+    });
+};
+export { wxShowMenu };

+ 455 - 0
src/views/certsearch/index.vue

@@ -0,0 +1,455 @@
+<template>
+  <div id="" @keyup.enter="getSearch">
+    <div v-if="beforesel" class="center_1200" style="height: 100%">
+      <el-main
+        v-loading="loading"
+        class="main_style"
+        style="text-align: center"
+      >
+        <el-card class="box-card">
+          <div
+            slot="header"
+            class="clearfix"
+            style="font-size: 18px; font-weight: 700"
+          >
+            <span>工程质量风险管理工程师培训<br />测评成绩查询</span>
+          </div>
+          <el-form label-position="right" label-width="85px" :model="formData">
+            <el-form-item
+              v-for="(item, index) in formList"
+              :label="item.label"
+              :key="index"
+            >
+              <el-input
+                clearable
+                :size="$store.state.defaultSize"
+                v-model="formData[item.prop]"
+                :placeholder="item.placeholder"
+              ></el-input>
+            </el-form-item>
+            <div>
+              <el-button
+                :size="$store.state.defaultSize"
+                type="primary"
+                @click="getSearch"
+                >查询</el-button
+              >
+              <el-button
+                :size="$store.state.defaultSize"
+                type="primary"
+                @click="init"
+                >重置</el-button
+              >
+            </div>
+          </el-form>
+        </el-card>
+      </el-main>
+    </div>
+    <div v-else class="input_style">
+      <el-form
+        label-position="right"
+        label-width="85px"
+        :model="formData"
+        style="text-align: center"
+      >
+        <el-form-item
+          v-for="(item, index) in formList"
+          :label="item.label"
+          :key="index"
+        >
+          <el-input
+            clearable
+            :size="$store.state.defaultSize"
+            v-model="formData[item.prop]"
+            :placeholder="item.placeholder"
+          ></el-input>
+        </el-form-item>
+        <div>
+          <el-button
+            :size="$store.state.defaultSize"
+            type="primary"
+            @click="getSearch"
+            >查询</el-button
+          >
+          <el-button
+            :size="$store.state.defaultSize"
+            type="primary"
+            @click="init"
+            >重置</el-button
+          >
+        </div>
+      </el-form>
+      <!-- <i class="el-icon-search"></i>
+      <input
+        type="text"
+        v-model.trim="formData.Name"
+        placeholder="输入姓名"
+        style="width:40%;      background: #cbdbf3;
+    margin-right: 4px;
+    border-radius: 10px;"
+      />
+      <input
+        type="text"
+        v-model.trim="formData.IdNum"
+        placeholder="请输入身份证号"
+        style="width: 220px;    background: #cbdbf3;
+    border-radius: 10px;"
+      />
+      <span class="btn" @click="getSearch">搜索</span> -->
+    </div>
+
+    <van-empty description="暂无数据" v-if="notList.length == 0" />
+    <el-main v-else v-loading="loading" class="notList_box">
+      <el-card class="notList_style">
+        <div class="infocard">
+          <!-- <el-image
+                v-if="items._studentImg"
+                style="width: 70px; height: 100px"
+                :src="$methods.splitImgHost(items._studentImg)"
+                :preview-src-list="[$methods.splitImgHost(items._studentImg)]"
+              >
+              </el-image> -->
+          <!-- <img v-if="items._studentImg" style="width: 80px;height: 115px;" :src="$methods.splitImgHost(items._studentImg)" class="imageleft"> -->
+          <div
+            class=""
+            style="font-size: 16px"
+            v-for="(items, indexs) in notList"
+            :key="indexs"
+          >
+            <div v-if="indexs == 0" style="display: grid">
+              <span>姓名:{{ items._name }}</span>
+              <span>身份证号:{{ items._idNum }}</span>
+              <span>单位名称:{{ items._company }}</span>
+            </div>
+            <el-divider></el-divider>
+
+            <table class="table" style="font-size: 14px">
+              <tbody>
+                <tr>
+                  <td rowspan="5" style="width: 15%;text-align: center;">{{ indexs + 1 }}</td>
+                  <td>考试时间:{{ items._examTime  &&items._examTime!=""?items._examTime: "-" }}</td>
+                </tr>
+                <!-- <tr>
+                  <td>成绩:{{ items._score  &&items._score!=""?items._score: "-" }}</td>
+                </tr> -->
+                <tr>
+                  <td>考试结果:{{ items.examStatusName &&items.examStatusName!=""?items.examStatusName: "-" }}</td>
+                </tr>
+                <tr>
+                  <td>证书编号:{{ items._examStatus == 1&&items._certNum &&items._certNum!=""?items._certNum: "-" }}</td>
+                </tr>
+                <tr>
+                  <td>发证日期:{{ items._examStatus == 1&&items._issueDate&&items._issueDate!=""?items._issueDate: "-" }}</td>
+                </tr>
+                <tr>
+                  <td>备注:{{ items._remarks&&items._remarks!="" ?items._remarks: "-" }}</td>
+                </tr>
+                <tr v-if="items._examStatus == 1">
+                  <td colspan="2" style="text-align: center;">
+                    <el-button
+                      type="text"
+                      class="down"
+                      @click="down(items)"
+                      style="font-size: 18px"
+                      >证书下载</el-button
+                    >
+                  </td>
+                </tr>
+              </tbody>
+            </table>
+            <!-- <div>
+              <div style="width: 30px;">
+                {{ indexs + 1 }}
+              </div>
+              <div>
+                <span>考试时间:{{ items._examTime ?? "-" }}</span>
+                <span>成绩:{{ items._score ?? "-" }}</span>
+                <span>考试结果:{{ items.examStatusName ?? "-" }}</span>
+                  <span>证书编号:{{ items._certNum ?? "-" }}</span>
+                  <span>发证日期:{{ items._issueDate ?? "-" }}</span>
+                  <span>备注:{{ items._remarks ?? "-" }}</span>
+                <div
+                  v-if="items._examStatus == 1"
+                  style="padding: 14px; font-size: 16px"
+                >
+                  <div class="bottom clearfix">
+                    <el-button
+                      type="text"
+                      class="down"
+                      @click="down(items)"
+                      style="float: right; font-size: 18px"
+                      >证书下载</el-button
+                    >
+                  </div>
+                </div>
+              </div>
+            </div> -->
+          </div>
+        </div>
+        <i></i>
+      </el-card>
+      <div style="text-align: center" v-if="notList.length > 0">
+        <el-pagination
+          :pager-count="3"
+          class="paginations"
+          @current-change="handleCurrentChange($event)"
+          :current-page.sync="formData.pageindex"
+          :page-size="formData.pagesize"
+          layout="total, prev, pager, next"
+          :total="total"
+        >
+        </el-pagination>
+      </div>
+    </el-main>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "searchKey",
+  data() {
+    return {
+      notList: [],
+      formList: [
+        {
+          label: "姓名:",
+          prop: "Name",
+          placeholder: "必填",
+        },
+        {
+          label: "身份证:",
+          prop: "IdNum",
+          placeholder: "与证书编号选填",
+        },
+        {
+          label: "证书编号:",
+          prop: "CertNum",
+          placeholder: "选填",
+        },
+      ],
+      loading: false,
+      total: 0,
+      formData: {
+        pagesize: 11, //每页内容条数
+        pageindex: 1, //当前第几页
+      },
+      beforesel: true,
+    };
+  },
+  created() {
+    // this.getSearch();
+  },
+  watch: {
+    $route: {
+      handler: function (val, oldVal) {
+        if(val.query.Name){
+        this.formData.Name = val.query.Name;
+        }
+        if(val.query.CertNum){
+        this.formData.CertNum = val.query.CertNum;
+        }
+        if(val.query.Name&&val.query.CertNum){
+        this.getSearch();
+      }
+      },
+      // 深度观察监听
+      deep: true,
+      immediate: true,
+    },
+  },
+  methods: {
+    clear() {
+      this.total = 0;
+      this.formData = {
+        pagesize: 10, //每页内容条数
+        pageindex: 1, //当前第几页
+      };
+    },
+    init() {
+      this.formData = { pageindex: 1, pagesize: 10 };
+    },
+    getSearch(int) {
+      if (!this.formData.Name) {
+        this.$message({
+          type: "error",
+          message: "姓名不能为空!",
+        });
+        return;
+      }
+      if (!this.formData.IdNum && !this.formData.CertNum) {
+        this.$message({
+          type: "error",
+          message: "身份证和证书编号必须选填一个!",
+        });
+        return;
+      }
+      this.beforesel = false;
+      this.loading = true;
+      if (int == 1) {
+        this.formData.pageindex = 1;
+      }
+      this.$api
+        .XfWebApiGetCertList(this.formData)
+        .then((res) => {
+          this.notList = res.Data.List || [];
+          this.total = res.Data.TotalCount;
+          this.notList.forEach((item) => {
+            if (item._examTime) {
+              item._examTime = item._examTime.substr(0, 10);
+            }
+            if (item._issueDate) {
+              item._issueDate = item._issueDate.substr(0, 10);
+            }
+            item.statusName =
+              item._status == -1
+                ? "已删除"
+                : item._status == 0
+                ? "官网隐藏"
+                : "正常";
+            item.examStatusName =
+              item._examStatus == 0
+                ? "-"
+                : item._examStatus == 1
+                ? "合格"
+                : "不合格";
+          });
+        })
+        .finally(() => {
+          this.loading = false;
+        });
+    },
+    handleCurrentChange(e) {
+      this.formData.pageindex = e;
+      this.getSearch();
+    },
+    //下载
+    down(row) {
+      if(this.loading){
+          this.$message({
+                type: "error",
+                message: "正在下载中,请稍后!",
+              });
+            return;
+            }
+        this.loading = true;
+      var pdata = { IdNum: row._idNum, CertId: row._certId };
+      this.$api
+        .XfWebApiDownCert(pdata)
+        .then((res) => {
+          this.loading = false;
+            // console.log(res.Data,"sd")
+            this.downfile(res.Data);
+        })
+        .finally(() => {
+          this.loading = false;
+        });
+    },
+    downfile(path) {
+      this.$methods.downloadbase64(this.formData.Name+"证书.png",path);
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.input_style {
+  background-color: #eee;
+  margin: 20px;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  padding: 10px 20px;
+  border-radius: 24px;
+  font-size: 30px;
+  & > i {
+    flex-shrink: 0;
+  }
+  & > input {
+    flex: 1;
+    border: none;
+    background-color: transparent;
+    padding: 0px 20px;
+    width: 1px;
+  }
+  & > .btn {
+    color: #2453af;
+    flex-shrink: 0;
+  }
+}
+
+.notList_box {
+  padding: 48px;
+  .notList_style {
+    align-items: center;
+    margin-bottom: 40px;
+    .infocard {
+      // display: flex;
+      width: 100%;
+      .imageleft {
+        display: inline;
+        width: 30%;
+      }
+    }
+
+    & > i {
+      width: 10px;
+      height: 10px;
+      background-color: #1890ff;
+      border-radius: 50%;
+      margin-right: 14px;
+      flex-shrink: 0;
+    }
+    & > .title {
+      flex: 1;
+      word-break: break-all;
+      text-overflow: ellipsis;
+      overflow: hidden;
+      display: -webkit-box;
+      -webkit-line-clamp: 1;
+      -webkit-box-orient: vertical;
+      color: #222;
+      font-weight: 500;
+      font-size: 28px;
+      margin-right: 20px;
+    }
+    & > .time {
+      color: #636b75;
+      font-size: 24px;
+      flex-shrink: 0;
+    }
+  }
+}
+.infocard {
+  font-size: 16px;
+  .imageleft {
+    margin-right: 5px;
+  }
+  .divright {
+    display: grid;
+  }
+}
+.box-card {
+  width: 90%;
+  text-align: center;
+  margin-left: 5%;
+}
+.el-form-item {
+  margin-bottom: 10px !important;
+}
+.table {
+  border-collapse: collapse; /* 合并表格边框 */
+ 
+  width: 100%;
+}
+
+table td {
+  padding: 12px;
+  min-width: 0;
+  box-sizing: border-box;
+  text-overflow: ellipsis;
+  vertical-align: middle;
+  position: relative;
+  text-align: left;
+  border: 1px solid #ccc; /* 设置表格边框样式和颜色 */
+}
+</style>

+ 2 - 2
src/views/home/tab.vue

@@ -26,7 +26,7 @@
             <i></i>
             <div class="title">{{ items.Title }}</div>
             <span class="time">{{
-              $methods.onlyFormaHao(items.CreateTime, false)
+              $methods.onlyFormaHao(items.NewsCreateTime, false)
             }}</span>
           </div>
           <div style="text-align: center" v-if="notList[item.name].length > 0">
@@ -58,7 +58,7 @@ export default {
         { label: "政策要闻", name: "d1" },
         { label: "通知公告", name: "d2" },
         { label: "协会动态", name: "d3" },
-        { label: "行业报告", name: "d4" },
+        // { label: "行业报告", name: "d4" },
       ],
       notList: {
         d0: [],

+ 48 - 2
src/views/info/index.vue

@@ -33,6 +33,8 @@
 import "quill/dist/quill.core.css";
 import Share from "vue-social-share";
 import "@/assets/css/client.css";
+import { wxShowMenu } from "../../utils/wx";
+	
 export default {
   components: { Share },
   data() {
@@ -86,15 +88,19 @@ export default {
             this.next =
               res.Data.AboutList.find((i) => i.SortNumber == 0) || null;
           }
+          this.setBrowserTitle();
           if (this.infoData.Status == 0) {
             this.msgStatus = "文章已关闭";
           }
-          if (this.infoData.Status == 2) {
+          else if (this.infoData.Status == 2) {
             this.msgStatus = "文章审核不通过";
           }
-          if (this.infoData.Status == 3) {
+          else  if (this.infoData.Status == 3) {
             this.msgStatus = "文章审核中";
           }
+          else{
+            this.wxShareInfo();
+          }
         });
     },
     jumpInfo(e) {
@@ -107,6 +113,46 @@ export default {
       });
       document.documentElement.scrollTop = 0;
     },
+	//初始化分享信息
+    wxShareInfo() {
+      var ua = navigator.userAgent.toLowerCase(); //判断是否是微信浏览器
+      var isWeixin = ua.indexOf("micromessenger") != -1; //判断是否
+      if (!isWeixin) {
+         return false;
+      }
+      var data=this.infoData;
+      var vm = this;
+      var imgUrl="https://sj.gzjsfx.com/img2/xh.cdd2de7c.png";
+      if(data.ImageUrl){
+       // imgUrl= data.ImageUrl;
+      }
+      var cururl=window.location.href;
+      var textContent = data.NewContent.replace(/<[^>]*>/g, '');
+      textContent = textContent.replace(/[ | ]*\n/g,'\n'); //去除行尾空白
+      textContent=textContent.replace(/&nbsp;/ig,'');//去掉&nbsp;
+      //console.log(textContent);
+      var shareData = {
+        imgUrl: this.$methods.splitImgHost(imgUrl), //域名在白名单中
+        timeLineLink:cururl,//域名在白名单中
+        tTitle: data.Title,
+        tContent: textContent,
+        cururl:encodeURIComponent(cururl)
+      };
+      console.log(shareData);
+      //调用初始化方法
+      wxShowMenu(shareData).then(
+        res => {
+          console.log(res);
+        },
+        err => {
+          console.log(err);
+        }
+      );
+    },
+    setBrowserTitle() {
+      document.title = this.infoData.Title; // 设置浏览器标题
+    },
+
   },
 };
 </script>