This commit is contained in:
jiangrui 2023-01-12 16:47:33 +08:00
commit e0de3c2e43
362 changed files with 62700 additions and 0 deletions

31
.eslintrc.js Normal file
View File

@ -0,0 +1,31 @@
/*
* Eslint config file
* Documentation: https://eslint.org/docs/user-guide/configuring/
* Install the Eslint extension before using this feature.
*/
module.exports = {
env: {
es6: true,
browser: true,
node: true,
},
ecmaFeatures: {
modules: true,
},
parserOptions: {
ecmaVersion: 2018,
sourceType: 'module',
},
globals: {
wx: true,
App: true,
Page: true,
getCurrentPages: true,
getApp: true,
Component: true,
requirePlugin: true,
requireMiniProgram: true,
},
// extends: 'eslint:recommended',
rules: {},
}

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
node_modules
/miniprogram/miniprogram_npm

View File

@ -0,0 +1,9 @@
import { request } from '../utils/request'
export function sysConfig() {
return request({
url: '/sysConfig',
method: 'GET',
})
}

View File

@ -0,0 +1,18 @@
import { request } from '../utils/request'
export function bindPhone(data: any) {
return request({
url: '/consumer/bindPhone',
method: 'POST',
data
})
}
export function bindPhoneList() {
return request({
url: '/consumer/bindPhoneList',
method: 'GET',
})
}

View File

@ -0,0 +1,75 @@
import { request } from '../utils/request'
export function informationList() {
return request({
url: '/consumer/staff',
method: 'GET',
})
}
export function informationAdd(data: any) {
return request({
// url: '/consumer/staff',
url:'/consumer/staff/V2',
method: 'POST',
data
})
}
export function informationDelete(data: any) {
return request({
url: '/consumer/staff/delete',
method: 'POST',
data
})
}
export function dataRecord(id: any) {
return request({
url: '/consumer/staff/dataRecord?id=' + id,
method: 'GET',
})
}
export function corrigendaApply(data: any) {
return request({
url: '/consumer/corrigendaRecord/apply',
method: 'POST',
data
})
}
export function corrigendaList(data: any) {
return request({
url: '/consumer/corrigendaRecord/list',
method: 'POST',
data
})
}
export function updateWithDataId(data: any) {
return request({
url: '/consumer/staff/updateWithDataId',
method: 'PUT',
data
})
}
export function redDotMarkDeal(id: any) {
return request({
url: `/consumer/staff/redDotMarkDeal?dataId=${id}`,
method: "GET"
});
}
export function agentApply(data: any) {
return request({
url: `/consumer/staff/businessNameAuthenticationApply`,
method: "POST",
data
});
}
export function businessLinkNameList(data: any) {
return request({
url: `/consumer/business/businessLinkNameList`,
method: "GET",
data
});
}

View File

@ -0,0 +1,55 @@
import { request } from '../utils/request'
export function originatorList(data:any) {
return request({
url: '/consumer/inspectionRecord/originator/list',
method: 'POST',
data
})
}
export function inspectedList(data:any) {
return request({
url: '/consumer/inspectionRecord/inspectedPerson/list',
method: 'POST',
data
})
}
export function deal(data:any) {
return request({
url: '/consumer/inspectionRecord/inspectedPerson/deal',
method: 'POST',
data
})
}
export function defaultConfig(data:any) {
return request({
url: '/consumer/inspectionRecord/inspectedPerson/defaultConfig',
method: 'POST',
data
})
}
export function defaultConfigFind() {
return request({
url: '/consumer/inspectionRecord/inspectedPerson/defaultConfigFind',
method: 'GET'
})
}
export function apply(data:any) {
return request({
url: '/consumer/inspectionRecord/originator/apply',
method: 'POST',
data
})
}
export function timeCheck() {
return request({
url: '/consumer/inspectionRecord/originator/timeCheck',
method: 'GET'
})
}

48
miniprogram/apis/login.ts Normal file
View File

@ -0,0 +1,48 @@
import { request } from '../utils/request'
export function login(data:any) {
return request({
url: '/commonLogin/login',
method: 'POST',
data
})
}
export function sendSms(data:any) {
return request({
url: '/consumer/codeSend',
method: 'POST',
data
})
}
export function userInfo(data:any) {
return request({
url: '/consumer',
method: 'GET',
data
})
}
export function wxLogin(data:any) {
return request({
url: '/consumer/commonLogin/wechat/login',
method: 'POST',
data
})
}
export function realNameAuthentication(data:any) {
return request({
url: '/consumer/auth/realNameAuthentication',
method: 'POST',
data
})
}
export function realNameAuthenticationResultCheck() {
return request({
url: '/consumer/auth/realNameAuthenticationResultCheck',
method: 'GET'
})
}

9
miniprogram/apis/open.ts Normal file
View File

@ -0,0 +1,9 @@
import { request } from '../utils/request'
export function getOpenId(data:any) {
return request({
url: '/wechat/open/wx/get',
method: 'POST',
data
})
}

17
miniprogram/apis/pay.ts Normal file
View File

@ -0,0 +1,17 @@
import { request } from '../utils/request'
export function pay(data:any) {
return request({
url: '/consumer/pay',
method: 'POST',
data
})
}
export function getPayInfo(data:any) {
return request({
url: '/consumer/pay',
method: 'GET',
data
})
}

52
miniprogram/apis/phone.ts Normal file
View File

@ -0,0 +1,52 @@
import { request } from '../utils/request'
export function info(data: any) {
return request({
url: `/phone/info`,
method: 'POST',
data
})
}
export function list(data: any) {
return request({
url: `/phone/infoList`,
method: 'POST',
data
})
}
export function etcData(phone: any) {
return request({
url: `/phone/electronicCertificateData?phone=${phone}`,
method: 'GET',
})
}
export function evaluateLaunch(data: any) {
return request({
url: `/phone/evaluateLaunch`,
method: 'POST',
data
})
}
export function cleanPhoneDate(phone: any) {
return request({
url: `/phone/cleanPhoneDate?phone=${phone}`,
method: 'DELETE',
})
}
export function etcChoose(data: any) {
return request({
url: `/phone/electronicCertificateChose`,
method: 'POST',
data
})
}
export function labelStatistics(phone: string) {
return request({
url: `/phone/labelStatistics?phone=${phone}`,
method: 'GET',
})
}

View File

@ -0,0 +1,9 @@
import { request } from '../utils/request'
export function list(data:any) {
return request({
url: '/consumer/questions/list',
method: 'POST',
data
})
}

View File

@ -0,0 +1,93 @@
import { request } from '../utils/request'
export function list(data: any) {
return request({
url: '/consumer/report/list',
method: 'POST',
data
})
}
export function certificateList(data: any) {
return request({
url: '/consumer/report/electronicCertificate/list',
method: 'POST',
data
})
}
export function visitRecord(data: any) {
return request({
url: '/consumer/report/electronicCertificate/visitRecord',
method: 'POST',
data
})
}
export function certificateSave(data: any) {
return request({
url: '/consumer/report/electronicCertificate/save',
method: 'POST',
data
})
}
export function certificateDiscard(data: any) {
return request({
url: '/consumer/report/electronicCertificate/discard',
method: 'GET',
data
})
}
export function reportDelete(data: any) {
return request({
url: '/consumer/report/reportDelete',
method: 'DELETE',
data
})
}
export function reportSave(data: any) {
return request({
url: '/consumer/report/save',
method: 'POST',
data
})
}
export function reportPreview(data: any) {
return request({
url: '/consumer/report/preview',
method: 'POST',
data
})
}
export function visitReport(id: any) {
return request({
url: `/consumer/inspectionRecord/originator/visitReport?id=${id}`,
method: 'GET',
})
}
export function certificateDetail(id: any) {
return request({
url: `/consumer/report/electronicCertificate/info?id=${id}`,
method: 'GET',
})
}
export function certificateDetail2(id: any) {
return request({
url: `/consumer/report/electronicCertificate/visit?id=${id}`,
method: 'GET',
})
}
export function reportCreateDate(id: any) {
return request({
url: `/consumer/report/reportCreateDate?id=${id}`,
method: 'GET',
})
}

View File

@ -0,0 +1,14 @@
import { request } from '../utils/request'
export function codeScanningSuccess(id:any) {
return request({
url: `/consumer/webSocket/codeScanningSuccess/${id}`,
method: 'GET'
})
}
export function codeScanningLogin(id:string) {
return request({
url: `/consumer/webSocket/codeScanningLogin/${id}`,
method: 'GET'
})
}

11
miniprogram/apis/tag.ts Normal file
View File

@ -0,0 +1,11 @@
import { request } from '../utils/request'
export function list(data: any) {
return request({
url: `/evaluateLabel/list`,
method: 'POST',
data
})
}

View File

@ -0,0 +1,10 @@
import { request } from '../utils/request'
export function uploadImg(data) {
return request({
url: '/consumer/commonLogin/upload',
method: 'POST',
data
})
}

62
miniprogram/app.json Normal file
View File

@ -0,0 +1,62 @@
{
"pages": [
"pages/index/index",
"pages/shareTimeLine/shareTimeLine",
"pages/QA/QA",
"pages/service/service",
"pages/login/login",
"pages/pay/pay",
"pages/reportDetail/reportDetail",
"pages/report/report",
"pages/my/my",
"pages/searchResult/searchResult",
"pages/information/information",
"pages/guide/guide",
"pages/addPhone/addPhone",
"pages/corrigendum/corrigendum",
"pages/reportPreview/reportPreview",
"pages/generateReport/generateReport",
"pages/informationCreate/informationCreate",
"pages/informationDetail/informationDetail",
"pages/informationEventCreate/informationEventCreate",
"pages/informationEdit/informationEdit",
"pages/dataRecords/dataRecords",
"pages/createReport/createReport",
"pages/apply/apply",
"pages/inspected/inspected",
"pages/inspectedRecords/inspectedRecords",
"pages/logs/logs",
"pages/applySetting/applySetting",
"pages/member/member",
"pages/memberPreview/memberPreview",
"pages/certification/certification",
"pages/certificationResult/certificationResult",
"pages/answer/answer",
"pages/personal/personal",
"pages/visitor/visitor",
"pages/certificateCreate/certificateCreate",
"pages/privacy/privacy",
"pages/agreement/agreement",
"pages/errataRecords/errataRecords",
"pages/errataDetail/errataDetail",
"pages/scanLogin/scanLogin",
"pages/scanResult/scanResult",
"pages/webView/webView",
"pages/question/question",
"pages/questionDetail/questionDetail",
"pages/whiteList/whiteList",
"pages/addAuthName/addAuthName"
],
"window": {
"backgroundTextStyle": "light",
"navigationBarBackgroundColor": "#fff",
"navigationBarTitleText": "众评",
"navigationBarTextStyle": "black"
},
"usingComponents": {
"filter": "/components/filter/filter"
},
"style": "v2",
"sitemapLocation": "sitemap.json"
}

1
miniprogram/app.scss Normal file
View File

@ -0,0 +1 @@
/**app.wxss**/

212
miniprogram/app.ts Normal file
View File

@ -0,0 +1,212 @@
// app.ts
import { userInfo, login } from './apis/login'
import { getOpenId } from './apis/open'
import { pay } from './apis/pay'
import { querystrToObj } from './utils/util'
import { bindPhoneList } from "./apis/consumer";
App<IAppOption>({
globalData: {},
onLaunch() {
const res = wx.getMenuButtonBoundingClientRect()
wx.setStorageSync('MenuButtonBoundingClientRect', res)
// 展示本地存储能力
const logs = wx.getStorageSync('logs') || []
logs.unshift(Date.now())
wx.setStorageSync('logs', logs)
// const token = wx.getStorageSync('Authorization')
// if (!token) {
// wx.reLaunch({
// url: '/pages/login/login'
// })
// }
// return
// 登录
this.login().then(() => {
this.globalData.ready = true
this.reload()
}).catch(() => {
this.globalData.ready = true
})
/*
wx.login({
success: res => {
console.log(res.code)
// 发送 res.code 到后台换取 openId, sessionKey, unionId
getOpenId({
field: res.code
}).then((res:any) => {
this.globalData.openId = res.d.openId
login({
openId: res.d.openId,
staffType: 'WECHAT'
}).then((res:any) => {
wx.setStorageSync('Authorization', res.d)
this.getUserInfo().then(() => {
this.globalData.ready = true
this.reload()
})
}).catch(() => {
this.globalData.ready = true
wx.reLaunch({
url: '/pages/login/login'
})
})
})
},
})
*/
},
onShow(options) {
console.log('appShow', options)
const { path, query } = options
let { q, source } = query
if (['pages/apply/apply', 'pages/reportPreview/reportPreview', 'pages/scanLogin/scanLogin'].includes(path)) {
let pageQueryStr = ''
if (q) {
q = decodeURIComponent(q)
const queryStr = q.split('?')[1]
const queryObj = querystrToObj(decodeURIComponent(querystrToObj(queryStr).query))
pageQueryStr = decodeURIComponent(querystrToObj(queryStr).query)
source = queryObj.source
}
const backPage = `/${path}?${pageQueryStr}`
console.log(backPage)
wx.setStorageSync('QSource', source)
wx.setStorageSync('backPage', backPage)
} else {
wx.removeStorageSync('QSource')
wx.removeStorageSync('backPage')
}
},
// 登录
login() {
console.log('login,app.ts');
return new Promise((resolve, reject) => {
wx.login({
success: res => {
console.log(res.code)
// 发送 res.code 到后台换取 openId, sessionKey, unionId
getOpenId({
field: res.code
}).then((res: any) => {
this.globalData.openId = res.d.openId
this.globalData.unionId = res.d.unionId
login({
openId: res.d.openId,
// ...res.d,
loginType: 1
}).then((res: any) => {
wx.setStorageSync('Authorization', res.d)
// this.getBindPhoneList()
bindPhoneList().then(res => {
// wx.setStorageSync('accountList', res.d)
// this.globalData.accountList = res.d
wx.setStorageSync('accountList', res.d)
console.log(wx.getStorageSync('userInfo').phone,res.d);
wx.setStorageSync('userInfo', res.d.find(item => item.phone === wx.getStorageSync('userInfo').phone) || res.d[0])
// this.globalData.userInfo = res.d[0]
})
// this.getUserInfo().then(() => {
// resolve(true)
// this.getBindPhoneList()
// }).catch((err: any) => {
// reject(err)
// })
}).catch((err) => {
// this.globalData.ready = true
// wx.reLaunch({
// url: '/pages/login/login'
// })
reject(err)
})
}).catch((err) => {
reject(err)
})
},
})
})
},
// getBindPhoneList() {
// bindPhoneList().then(res => {
// // console.log(res);
// wx.setStorageSync('accountList', res.d)
// })
// },
// 获取用户信息, 在登录或开通会员等 用户信息改变时调用
getUserInfo() {
return userInfo({}).then((res: any) => {
this.globalData.userInfo = res.d
return res.d
})
},
// 页面重载
reload() {
const pages = getCurrentPages()
const currentPage = pages[pages.length - 1]
currentPage.onLoad(currentPage.options)
currentPage.onShow()
},
/**
*
* @param skip
* @returns
*/
certificationVerify(skip = false): boolean {
const status = this.globalData.userInfo?.status
let val = false
if (Number(status) >= 3) val = true
if (skip && !val) {
wx.navigateTo({
url: '/pages/certification/certification'
})
}
return val
},
/**
*
* @param skip
* @returns
*/
memberVerify(skip = false): boolean {
const status = this.globalData.userInfo?.status
let val = false
if (Number(status) === 4) val = true
if (skip && !val) {
wx.navigateTo({
url: '/pages/member/member'
})
}
return val
},
/**
*
* @param payType
* @returns
*/
pay(payType: String) {
return new Promise((resolve, reject) => {
pay({
payType,
wxPayApiType: 'JSAPI'
}).then((res: any) => {
wx.requestPayment({
...res.d,
success: (res: any) => {
resolve(res)
},
fail: (err: any) => {
wx.showToast({
icon: 'none',
title: '支付失败, 请稍后再试!'
})
reject(err)
}
})
})
})
}
})

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 301 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 758 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 982 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 459 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 553 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 507 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 554 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 420 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 729 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

View File

@ -0,0 +1,4 @@
{
"component": true,
"usingComponents": {}
}

View File

@ -0,0 +1,87 @@
/* components/btn/btn.wxss */
$primary: #6571D9;
$member: #653E12;
.btn-cmp {
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
border-radius: 44rpx;
font-size: 24rpx;
}
.primary {
background: $primary;
font-family: PingFang SC;
font-weight: 500;
color: #FFFFFF;
box-sizing: border-box;
padding: 0 20rpx;
&.plain {
box-sizing: border-box;
color: $primary;
border: 1rpx solid $primary;
background: #FFFFFF;
}
}
.primary45 {
background: #4B5AE5;
font-family: PingFang SC;
font-weight: 500;
color: #FFFFFF;
box-sizing: border-box;
padding: 0 20rpx;
}
.white {
background: #FFFFFF;
border: 1rpx solid #CDCDCD;
font-size: 24rpx;
font-family: PingFang SC;
// font-weight: bold;
color: #A1A1A1;
}
.default {
background: #7A8BFF;
border: 1rpx solid #FFFFFF;
border-radius: 25rpx;
font-size: 24rpx;
font-family: PingFang SC;
font-weight: bold;
color: #FFFFFF;
}
.default45 {
background: #7A8BFF;
border: 1rpx solid #FFFFFF;
border-radius: 45rpx;
font-size: 24rpx;
font-family: PingFang SC;
font-weight: bold;
color: #FFFFFF;
}
.info{
background: #FFFFFF;
color: #6979E8;
border-radius: 25rpx;
font-family: PingFang SC;
}
.member {
font-family: PingFang SC;
font-weight: 500;
color: #653E12;
background: #E5C7A3;
&.plain {
box-sizing: border-box;
color: #7986FF;
border: 1rpx solid #7986FF;
background: #FFFFFF;
}
}

View File

@ -0,0 +1,48 @@
// components/btn/btn.ts
Component({
/**
*
*/
properties: {
type: {
type: String,
value: 'primary'
},
plain: {
type: Boolean,
value: false
},
width: {
type: String,
value: '184rpx'
},
height: {
type: String,
value: '60rpx'
},
fontSize: {
type: String,
value: '24rpx'
},
bgColor:{
type:String,
},
padding:{
type:String,
}
},
/**
*
*/
data: {
},
/**
*
*/
methods: {
}
})

View File

@ -0,0 +1,5 @@
<!-- components/btn/btn.wxml -->
<view class="btn-cmp {{type}} {{plain&&'plain'}}"
style="font-size:{{fontSize}};width:{{width}};height:{{height}};background:{{bgColor}};padding:{{padding}}">
<slot></slot>
</view>

View File

@ -0,0 +1,4 @@
{
"component": true,
"usingComponents": {}
}

View File

@ -0,0 +1,9 @@
/* components/btnClose/btnClose.wxss */
.btn_close {
width: 26rpx;
height: 26rpx;
position: absolute;
right: 20rpx;
top: 20rpx;
color: #D8D8D8;
}

View File

@ -0,0 +1,23 @@
// components/btnClose/btnClose.ts
Component({
/**
*
*/
properties: {
},
/**
*
*/
data: {
},
/**
*
*/
methods: {
close(){}
}
})

View File

@ -0,0 +1,4 @@
<!--components/btnClose/btnClose.wxml-->
<view bindtap="dialogToLoginClose" style="position: absolute;right: 0;width: 60rpx;height: 60rpx;top: 0;">
<image class="btn_close" src="/assets/images/searchResult/icon_close.png" ></image>
</view>

View File

@ -0,0 +1,6 @@
{
"component": true,
"usingComponents": {
"shadow": "/components/shadow/shadow"
}
}

View File

@ -0,0 +1,98 @@
/* components/confirm/confirm.wxss */
.message-box {
width: 558rpx;
background: #ffffff;
border-radius: 24rpx;
box-sizing: border-box;
// padding: 68rpx 76rpx;
padding-top: 63rpx;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
position: relative;
.cancel-icon {
position: absolute;
right: 10rpx;
top: 0;
padding: 21rpx;
width: 31rpx;
height: 31rpx;
}
.type-icon {
width: 121rpx;
height: 156rpx;
margin-bottom: 15rpx;
}
.title {
font-size: 28rpx;
font-family: PingFang SC;
font-weight: bold;
color: #000000;
opacity: 0.61;
// line-height: 30rpx;
margin-bottom: 36rpx;
}
.message {
font-size: 24rpx;
font-family: PingFang SC;
font-weight: 400;
color: #838383;
line-height: 36rpx;
padding: 0 52rpx 54rpx 52rpx;
}
.btns {
display: flex;
width: 100%;
border-top: 1px solid #E9E9E9;
align-items: center;
justify-content: space-around;
height: 98rpx;
&::after {
content: '';
border-left: 1px solid #000;
position: absolute;
}
}
.confirm-btn {
// width: 100%;
height: 98rpx;
line-height: 98rpx;
// border-radius: 38rpx;
// text-align: center;
// background: #3A61B1;
width: 100%;
font-size: 26rpx;
font-family: PingFang SC;
font-weight: 500;
color: #3A61B1;
// margin-top: 32rpx;
}
.cancel-btn {
// font-size: 26rpx;
// font-family: PingFang SC;
// font-weight: 500;
// color: #C3C3C3;
// padding: 15rpx;
border-right: 1px solid #E9E9E9;
box-sizing: border-box;
width: 100%;
height: 98rpx;
line-height: 98rpx;
font-size: 24rpx;
font-family: PingFang SC;
font-weight: 500;
color: #838383;
}
}

View File

@ -0,0 +1,67 @@
// components/confirm/confirm.ts
Component({
/**
*
*/
properties: {
title: {
type: String,
value: ''
},
message: {
type: String,
value: ''
},
confirmText: {
type: String,
value: ''
},
cancelText: {
type: String,
value: ''
},
confirmShow: {
type: Boolean,
value: true
},
cancelShow: {
type: Boolean,
value: true
},
},
/**
*
*/
data: {
visible: false
},
/**
*
*/
methods: {
confirm() {
this.triggerEvent('confirm')
this.hidden()
},
cencel() {
this.triggerEvent('cancel')
this.hidden()
},
close() {
this.triggerEvent('close')
this.hidden()
},
show() {
this.setData({
visible: true
})
},
hidden() {
this.setData({
visible: false
})
}
}
})

View File

@ -0,0 +1,17 @@
<!--components/confirm/confirm.wxml-->
<view wx:if="{{visible}}" class="message-cmp">
<shadow>
<view class="message-box">
<!-- <image src="/assets/images/message/cancel.png" class="cancel-icon" bind:tap="close" /> -->
<!-- <image src="/assets/images/message/success.png" class="type-icon" /> -->
<view class="title">{{title}}</view>
<view class="message">{{message}}</view>
<view class="btns">
<view class="cancel-btn" bind:tap="cencel">{{cancelText}}</view>
<view class="confirm-btn" bind:tap="confirm">{{confirmText}}</view>
</view>
<!-- <view wx:if="{{confirmShow}}" class="confim-btn" bind:tap="confirm">{{confirmText}}</view> -->
<!-- <view wx:if="{{cancelShow}}" class="cancel-btn" bind:tap="cencel">{{cancelText}}</view> -->
</view>
</shadow>
</view>

View File

@ -0,0 +1,6 @@
{
"component": true,
"usingComponents": {
"redDot":"/components/redDot/redDot"
}
}

View File

@ -0,0 +1,25 @@
/* components/dataSource/dataSource.wxss */
.operation {
font-size: 24rpx;
font-family: PingFang SC;
font-weight: 400;
color: #2F88DB;
text-align: right;
margin-left: 68rpx;
position: relative;
.operationIcon {
margin-right: 9rpx;
width: 20rpx;
height: 22rpx;
}
.redDot {
width: 10rpx;
height: 10rpx;
display: inline-block;
border-radius: 50%;
background: red;
position: absolute;
top: 0px;
}
}

View File

@ -0,0 +1,35 @@
// components/dataSource/dataSource.ts
Component({
/**
*
*/
properties: {
dataId: {
type: String
},
redDotMark: {
type: Boolean,
value: false
}
},
/**
*
*/
data: {
},
/**
*
*/
methods: {
handleRecords(e: WechatMiniprogram.BaseEvent) {
console.log(e);
wx.navigateTo({
url: '/pages/dataRecords/dataRecords?id=' + e.currentTarget.dataset.id
})
},
}
})

View File

@ -0,0 +1,5 @@
<!--components/dataSource/dataSource.wxml-->
<view class="operation" bindtap="handleRecords" data-id="{{dataId}}">
<image src="/assets/images/information/icon_data.png" class="operationIcon"></image>数据记录
<redDot redDotMark="{{redDotMark}}"/>
</view>

View File

@ -0,0 +1,8 @@
{
"component": true,
"usingComponents": {
"shadow":"/components/shadow/shadow",
"btn":"/components/btn/btn",
"btnClose":"/components/btnClose/btnClose"
}
}

View File

@ -0,0 +1,113 @@
/* components/dialog/dialog.wxss */
.dialog_long {
background: rgba($color: #000000, $alpha: 0.5);
// width: 100%;
overflow: auto;
height: 100%;
// position: fixed;
position: absolute;
left: 0;
top: 0;
z-index: 150;
.dialog_box {
margin: 180rpx 65rpx;
// margin-top: 180rpx 65rpx 0 65rpx;
background: #fff;
// margin: 65rpx;
border-radius: 24rpx;
padding: 66rpx;
position: relative;
.dialog_title {
text-align: center;
margin-bottom: 40rpx;
font-size: 28rpx;
font-family: PingFang SC;
font-weight: bold;
color: #A1A1A1;
}
.dialog_content {
text {
font-size: 28rpx;
font-family: PingFang SC;
font-weight: bold;
color: #3E3E3E;
// margin-bottom: 27rpx;
}
}
}
}
.timeLine {
margin-top: 27rpx;
height: 600rpx;
overflow:auto;
margin-bottom: 20rpx;
padding-left: 20rpx;
.timeLine_item {
display: flex;
border-left: 1px solid #6471D9;
padding-left: 44rpx;
position: relative;
&:last-child {
border-left: 0;
}
.step {
background: #E9EBFF;
border-radius: 50%;
width: 43rpx;
height: 43rpx;
font-size: 24rpx;
font-family: PingFang SC;
font-weight: 500;
color: #6471D9;
display: flex;
justify-content: center;
align-items: center;
margin-right: 24rpx;
position: absolute;
left: -20rpx;
// &:not(:first-child) {
// &::after {
// content: "";
// border-left: 1px solid #000;
// position: absolute;
// height: 100px;
// }
// }
}
.timeLine_content {
font-size: 24rpx;
font-family: PingFang SC;
font-weight: bold;
color: #6471D9;
flex: 1;
padding-bottom: 33rpx;
.contentText {
font-size: 24rpx;
font-family: PingFang SC;
font-weight: 500;
color: #C2C2C2;
margin-top: 14rpx;
}
image {
width: 343rpx;
height: 452rpx;
margin-top: 25rpx;
}
}
}
}

View File

@ -0,0 +1,54 @@
// components/dialog/dialog.ts
Component({
/**
*
*/
properties: {
visible: {
type: Boolean,
value: false
},
position: {
type: String,
value:""
},
title: {
type: String,
value: '标题'
}
},
/**
*
*/
data: {
},
/**
*
*/
methods: {
close() {
console.log('close');
this.triggerEvent('close')
this.hidden()
},
hidden() {
this.setData({
visible: false
})
},
goChrivc() {
wx.navigateToMiniProgram({
appId: 'wx1da91ccb94c17c99',
path: 'pages/report/report',
success(res) {
// 打开成功
}
})
}
}
})

View File

@ -0,0 +1,64 @@
<!--components/dialog/dialog.wxml-->
<!-- catchtouchmove="none" -->
<view class="dialog_long" wx:if="{{visible}}">
<view class="dialog_box">
<btnClose bindtap="close" />
<view class="dialog_title">提示</view>
<view class="dialog_content" bindtap="hidden">
<text>您即将进入全国人力资源信息数据验证平台,邀请对方授权个人信息报告,操作流程如下:</text>
<view class="timeLine">
<view class="timeLine_item">
<view class="step">1</view>
<view class="timeLine_content">
<view>登录小程序</view>
<view class="contentText">通过手机号+验证码登录小程序;</view>
<image class="invite_pic" src="https://chrivc.obs.cn-north-4.myhuaweicloud.com/68da41b6790743df9c2672c09b4bef7e:invite_pic1.png"></image>
</view>
</view>
<view class="timeLine_item">
<view class="step">2</view>
<view class="timeLine_content">
<view>实名认证</view>
<view class="contentText">基于国家数据平台的信息安全规范,平台用户均为实名用户,请先完成实名认证。</view>
<image class="invite_pic" src="https://chrivc.obs.cn-north-4.myhuaweicloud.com/0658077fbc9c4b2b988200383333e260:invite_pic2.png"></image>
</view>
</view>
<view class="timeLine_item" wx:if="{{position==='my'}}">
<view class="step">3</view>
<view class="timeLine_content">
<view>新增个人信息报告</view>
<view class="contentText">查看、完善自填数据后,进入信息报告页面,您可根据您的需求选择性勾选数据生成个人信息报告,生成后的个人信息报告不可再次修改。</view>
<image class="invite_pic" style="height: 209rpx;" src="./images/step3.png"></image>
</view>
</view>
<view class="timeLine_item" wx:else>
<view class="step">3</view>
<view class="timeLine_content">
<view>查验他人</view>
<view class="contentText">进入查验他人页面,输入准确的姓名和手机号码,向他人发起实名查验申请,他人同意并授权后即可查看其个人信息报告。</view>
<image class="invite_pic" style="height:452rpx;" src="./images/step3-2.png"></image>
</view>
</view>
<view class="timeLine_item" wx:if="{{position==='my'}}">
<view class="step">4</view>
<view class="timeLine_content">
<view>给报告添加电子证书</view>
<view class="contentText">每份个人信息报告可生成多个授权查验的电子证书,通过电子证书授权允许他人查看个人信息报告。</view>
<image class="invite_pic" style="height: 426rpx;" src="./images/step4.png"></image>
</view>
</view>
<view class="timeLine_item" wx:if="{{position==='my'}}">
<view class="step">5</view>
<view class="timeLine_content">
<view>返回众评,选择证书展示</view>
<view class="contentText">完成电子证书授权后,返回众评再次选择想要展示的个人信息报告及对应的授权电子证书即可。</view>
<!-- <image class="invite_pic" src="/assets/images/searchResult/invite_pic1.png"></image> -->
</view>
</view>
</view>
<btn fontSize="24rpx" width="403rpx" height="64rpx" style="display: flex;justify-content: center;" bindtap="goChrivc">跳转至溯源优才小程序</btn>
<!-- </view> -->
</view>
</view>
</view>

Binary file not shown.

After

Width:  |  Height:  |  Size: 233 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

View File

@ -0,0 +1,4 @@
{
"component": true,
"usingComponents": {}
}

View File

@ -0,0 +1,14 @@
/* components/fileBox/fileBox.wxss */
.fileBox {
font-size: 24rpx;
font-family: PingFang SC;
font-weight: 500;
color: #C3C3C3;
line-height: 30rpx;
.icon_file {
width: 36rpx;
height: 36rpx;
margin-right: 9rpx;
}
}

View File

@ -0,0 +1,36 @@
// components/fileBox/fileBox.ts
Component({
/**
*
*/
properties: {
imgs: {
type: Array,
value: []
}
},
/**
*
*/
data: {
index: 0
},
/**
*
*/
methods: {
preview() {
let temps: { url: any }[] = []
this.data.imgs.map((item: any) => {
console.log(item);
temps.push({
url: item,
})
})
wx.previewMedia({ sources: temps, current: this.data.index })
}
}
})

View File

@ -0,0 +1,4 @@
<!--components/fileBox/fileBox.wxml-->
<view class="fileBox" bindtap="preview" wx:if="{{imgs.length}}">
<image class="icon_file" src="/assets/images/reportPreview/icon_file.png"></image>{{imgs.length}}个附件
</view>

View File

@ -0,0 +1,4 @@
{
"component": true,
"usingComponents": {}
}

View File

@ -0,0 +1 @@
/* components/filter/filter.wxss */

View File

@ -0,0 +1,58 @@
// components/filter/filter.ts
import { parseTime, optionsFilter, splitDates, hideInformation } from '../../utils/index'
Component({
options: {
styleIsolation: "shared"
},
/**
*
*/
properties: {
type: {
type: String,
observer() {
this.initData()
}
},
value: {
type: String,
observer() {
this.initData()
}
},
params: {
type: Array,
value: [],
observer() {
this.initData()
}
}
},
/**
*
*/
data: {
funs: { parseTime, optionsFilter, splitDates, hideInformation },
_value: ''
},
lifetimes: {
ready() {
this.initData()
}
},
/**
*
*/
methods: {
initData() {
const { type, value, params, funs } = this.data
this.setData({
// @ts-ignore
_value: funs[type](value, ...params)
})
}
}
})

View File

@ -0,0 +1,2 @@
<!--components/filter/filter.wxml-->
{{_value}}

View File

@ -0,0 +1,6 @@
{
"component": true,
"usingComponents": {
"shadow": "/components/shadow/shadow"
}
}

View File

@ -0,0 +1,156 @@
/* components/guide/guide.wxss */
.guide-cmp {
font-size: 24rpx;
// font-weight: bold;
// font-family: YouSheBiaoTiHei;
// font-weight: 400;
color: #FFFFFF;
position: fixed;
top: 30rpx;
right: 0;
z-index: 100;
// background: #3A61B1;
width: 172rpx;
height: 50rpx;
border: 1px solid #FFFFFF;
border-right: 0;
border-radius: 25px 0px 0px 25px;
font-family: PingFang SC;
font-weight: 500;
// border-top-left-radius: 20rpx;
// border-bottom-left-radius: 20rpx;
display: flex;
justify-content: center;
align-items: center;
// font-style: italic;
.icon_guideClose {
width: 11rpx;
height: 11rpx;
margin-left: 7rpx;
}
}
.guide-shadow {
width: 558rpx;
// height: 200rpx;
border-radius: 24rpx;
// background: linear-gradient(#BAC8E4, #FFF 162rpx);
display: flex;
flex-direction: column;
align-items: center;
padding: 35rpx 50rpx;
padding-bottom: 58rpx;
position: relative;
.cancel {
position: absolute;
top: 0;
right: 10rpx;
width: 31rpx;
height: 31rpx;
padding: 21rpx;
}
.title {
font-size: 34rpx;
font-family: PingFang SC;
font-weight: bold;
margin-bottom: 75rpx;
color: #FFFFFF;
}
.font-item {
width: 100%;
font-size: 24rpx;
font-family: PingFang SC;
font-weight: 500;
color: #838383;
margin-bottom: 30rpx;
text {
color: #3A61B1;
}
}
.btn {
width: 404rpx;
height: 75rpx;
line-height: 75rpx;
border-radius: 38rpx;
text-align: center;
font-size: 26rpx;
font-family: PingFang SC;
font-weight: 500;
color: #FFFFFF;
margin-top: 12rpx;
background: #3A61B1;
}
}
.guide {
width: 100%;
height: 100%;
padding-top: 210rpx;
color: #fff;
.title {
text-align: center;
}
swiper {
margin-top: 100rpx;
height: 1000rpx;
text-align: center;
}
.steps {
text-align: center;
.current {
font-size: 48rpx;
}
}
.remember {
font-size: 24rpx;
display: flex;
align-items: center;
justify-content: center;
.checkbox {
width: 19rpx;
height: 19rpx;
border-radius: 6rpx;
border: 1rpx solid #fff;
margin-right: 12rpx;
}
}
.btn_close {
margin-top: 20rpx;
width: 340rpx;
height: 69rpx;
font-size: 30rpx;
font-family: PingFang SC;
font-weight: 500;
color: #3A61B1;
background: none;
border: 3rpx solid #3A61B1;
border-radius: 35rpx;
}
}
.icon_search {
width: 20rpx;
height: 20rpx;
margin-right: 8rpx;
}
.my {
width: 127rpx;
height: 58rpx;
background: #6571D9;
border-radius: 29rpx 0px 0px 29rpx;
border: 0;
}

View File

@ -0,0 +1,76 @@
// components/guide/guide.ts
Component({
/**
*
*/
properties: {
realName: {
type: Boolean,
value: false
},
title: {
type: String,
value: '查看我的号码'
}
},
/**
*
*/
data: {
show: false,
current: 1,
steps: [{
// url: 'https://chrivc.obs.cn-north-4.myhuaweicloud.com/33fc395162ea4ee58483d056627b6217:附件_1660788247.png', height: '778rpx',
url: 'https://chrivc.obs.cn-north-4.myhuaweicloud.com/41a16263956d45fda44214e58543d586:附件_1665473077.png', height: '778rpx',
},
{ url: 'https://chrivc.obs.cn-north-4.myhuaweicloud.com/0fa3a164228247f4839e72a1b3b550d5:附件_1660788307.png', height: '903rpx', },
{ url: 'https://chrivc.obs.cn-north-4.myhuaweicloud.com/7b237c62ba7f4981a0bf7f384334fc75:附件_1660788523.png', height: '950rpx', },
{ url: 'https://chrivc.obs.cn-north-4.myhuaweicloud.com/b80807ac97fb48dda9c576ae73e1ed1d:附件_1660788465.png', height: '1050rpx', },
{ url: 'https://chrivc.obs.cn-north-4.myhuaweicloud.com/cf95856c688642e1ad71d541ba29759f:附件_1660788570.png', height: '1076rpx', },
{ url: 'https://chrivc.obs.cn-north-4.myhuaweicloud.com/addf3101aac14c2f877c80e1b3289339:附件_1660788609.png', height: '989rpx', },
{ url: 'https://chrivc.obs.cn-north-4.myhuaweicloud.com/ca4c058b91674c9aafe21d5275646392:附件_1660788643.png', height: '909rpx', }
],
tagShow: true
},
/**
*
*/
methods: {
guideShow() {
if (!this.data.realName) {
wx.redirectTo({
url: '/pages/login/login'
})
} else {
wx.redirectTo({
url: '/pages/my/my'
})
}
},
goSearch() {
wx.reLaunch({
url: '/pages/index/index'
})
},
guideHide() {
this.setData({
show: false
})
},
stepChange(e) {
const { current } = e.detail
this.setData({
current: current + 1
})
},
closeTag() {
console.log('closeTag');
this.setData({
tagShow: false
})
}
}
})

View File

@ -0,0 +1,5 @@
<!--components/guide/guide.wxml-->
<view wx:if="{{title!=='查号码'}}" class="guide-cmp" bind:tap="guideShow">{{title}}</view>
<view wx:else class="guide-cmp my" bind:tap="goSearch">
<image class="icon_search" src="./images/icon_search.png"></image>查号码
</view>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -0,0 +1,4 @@
{
"component": true,
"usingComponents": {}
}

View File

@ -0,0 +1 @@
/* components/icon/icon.wxss */

View File

@ -0,0 +1,23 @@
// components/icon/icon.ts
Component({
/**
*
*/
properties: {
},
/**
*
*/
data: {
},
/**
*
*/
methods: {
}
})

View File

@ -0,0 +1,2 @@
<!--components/icon/icon.wxml-->
<image src="{{}}"></image>

View File

@ -0,0 +1,6 @@
{
"component": true,
"usingComponents": {
"shadow": "/components/shadow/shadow"
}
}

View File

@ -0,0 +1,62 @@
/* components/message/message.wxss */
.message-box{
width: 558rpx;
background: #ffffff;
border-radius: 24rpx;
box-sizing: border-box;
padding: 68rpx 76rpx;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
position: relative;
.cancel-icon{
position: absolute;
right: 10rpx;
top: 0;
padding: 21rpx;
width: 31rpx;
height: 31rpx;
}
.type-icon{
width: 121rpx;
height: 156rpx;
margin-bottom: 15rpx;
}
.title{
font-size: 34rpx;
font-family: PingFang SC;
font-weight: bold;
color: #000000;
}
.message{
font-size: 24rpx;
font-family: PingFang SC;
font-weight: 500;
color: #838383;
margin-top: 20rpx;
}
.confim-btn{
width: 100%;
height: 76rpx;
line-height: 76rpx;
border-radius: 38rpx;
text-align: center;
background: #3A61B1;
font-size: 26rpx;
font-family: PingFang SC;
font-weight: 500;
color: #FFFFFF;
margin-top: 32rpx;
}
.cancel-btn{
font-size: 26rpx;
font-family: PingFang SC;
font-weight: 500;
color: #C3C3C3;
padding: 15rpx;
}
}

View File

@ -0,0 +1,71 @@
// components/message/message.ts
Component({
/**
*
*/
properties: {
title: {
type: String,
value: ''
},
message: {
type: String,
value: ''
},
confirmText: {
type: String,
value: ''
},
cancelText: {
type: String,
value: ''
},
confirmShow: {
type: Boolean,
value: true
},
cancelShow: {
type: Boolean,
value: true
},
iconShow: {
type: Boolean,
value: true
}
},
/**
*
*/
data: {
visible: false
},
/**
*
*/
methods: {
confirm() {
this.triggerEvent('confirm')
this.hidden()
},
cencel() {
this.triggerEvent('cancel')
this.hidden()
},
close() {
this.triggerEvent('close')
this.hidden()
},
show() {
this.setData({
visible: true
})
},
hidden() {
this.setData({
visible: false
})
}
}
})

View File

@ -0,0 +1,13 @@
<!--components/message/message.wxml-->
<view wx:if="{{visible}}" class="message-cmp">
<shadow>
<view class="message-box">
<image src="/assets/images/message/cancel.png" class="cancel-icon" bind:tap="close" />
<image wx:if="{{iconShow}}" src="/assets/images/message/success.png" class="type-icon" />
<view class="title">{{title}}</view>
<view class="message">{{message}}</view>
<view wx:if="{{confirmShow}}" class="confim-btn" bind:tap="confirm">{{confirmText}}</view>
<view wx:if="{{cancelShow}}" class="cancel-btn" bind:tap="cencel">{{cancelText}}</view>
</view>
</shadow>
</view>

Some files were not shown because too many files have changed in this diff Show More