抖音小程序(未审核通过,待修改)

master
yujialong 1 year ago
parent edd2c9ea0c
commit 9f45d81bee
  1. 4
      .hbuilderx/launch.json
  2. 2
      README.md
  3. 26
      components/notAuth/notAuth.vue
  4. 39
      libs/mtj-wx-sdk.config.js
  5. 1
      libs/mtj-wx-sdk.js
  6. 1
      main.js
  7. 3
      manifest.json
  8. 124
      order/clients/clients.vue
  9. 33
      order/productDetail/productDetail.vue
  10. 25
      pages/login/login.vue
  11. 16
      pages/orders/orders.vue
  12. 8
      pages/workbench/workbench.vue
  13. 8
      styles/common.scss
  14. 113
      team/plans/plans.vue

@ -10,6 +10,10 @@
{
"launchtype" : "local"
},
"mp-toutiao" :
{
"launchtype" : "local"
},
"mp-weixin" :
{
"launchtype" : "local"

@ -1 +1 @@
# 或然科技产业平台合伙人版
# 职站商城

@ -0,0 +1,26 @@
<template>
<view class="per-mask">
<view class="mask"></view>
<view class="texts">
<view class="text">权限审核中可联系下方平台运营加快审核进度</view>
<image class="qrcode" src="https://occupationlab.com/images/customer.png" mode="widthFix"></image>
</view>
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
}
}
</script>
<style scoped lang="scss">
</style>

@ -0,0 +1,39 @@
/**
* @file 百度移动统计配置文件
*/
module.exports = {
/**
* 从百度移动统计获取的AppKey
* @type {string}
*/
appKey: 'ce2fa79380',
/**
* 是否使用了插件
* @type {boolean}
*/
hasPlugin: false,
/**
* 是否获取当前的地理位置和速度信息
* @type {boolean}
*/
getLocation: false,
/**
* 是否获取组件滚动信息
* @type {boolean}
*/
getComponentScroll: false,
/**
* 是否开启了A/B 测试
* @type {boolean}
*/
hasABTest: false,
/**
* 是否开启热力图功能
* @type {boolean}
*/
hasHeatmap: false,
};

File diff suppressed because one or more lines are too long

@ -5,6 +5,7 @@ import App from './App'
import util from '@/libs/util'
import uma from './libs/uma'
import share from './libs/share'
import mtjWxSdk from './libs/mtj-wx-sdk'
Vue.config.productionTip = false
Vue.prototype.$util = util

@ -66,5 +66,8 @@
"vueVersion" : "2",
"uniStatistics" : {
"version" : "2"
},
"mp-toutiao" : {
"appid" : "tt2192572fbea04fe601"
}
}

@ -1,48 +1,52 @@
<template>
<view class="page">
<view class="filter">
<uni-search-bar class="search" radius="30" placeholder="请输入客户名称" v-model="keyword" clearButton="auto" cancelButton="none" />
<uni-icons class="icon" custom-prefix="iconfont" type="icon-filter" size="22" color="#007eff" @click="popup = true"></uni-icons>
</view>
<ul class="tab">
<li v-for="(tab, i) in tabs" :class="{active: curTab === tab.id}" @click="tabChange(tab)">{{ tab.name }}</li>
</ul>
<view>
<view :class="['page', {'not-auth': !per}]">
<view class="filter">
<uni-search-bar class="search" radius="30" placeholder="请输入客户名称" v-model="keyword" clearButton="auto" cancelButton="none" />
<uni-icons class="icon" custom-prefix="iconfont" type="icon-filter" size="22" color="#007eff" @click="popup = true"></uni-icons>
</view>
<ul class="tab">
<li v-for="(tab, i) in tabs" :class="{active: curTab === tab.id}" @click="tabChange(tab)">{{ tab.name }}</li>
</ul>
<template v-if="list.length">
<ul class="list">
<li v-for="item in list" @click="toDetail(item)">
<view class="c-name">{{ item.customerName }}</view>
<view class="info">
<view class="left">
<view class="line">
<text class="name">联系人</text>
<text class="val">{{ item.orderContact }}</text>
</view>
<view class="line">
<text class="name">账号</text>
<text class="val">{{ item.account }}</text>
<template v-if="list.length">
<ul class="list">
<li v-for="item in list" @click="toDetail(item)">
<view class="c-name">{{ item.customerName }}</view>
<view class="info">
<view class="left">
<view class="line">
<text class="name">联系人</text>
<text class="val">{{ item.orderContact }}</text>
</view>
<view class="line">
<text class="name">账号</text>
<text class="val">{{ item.account }}</text>
</view>
<view class="line">
<text class="name">产品到期时间</text>
<text class="val">{{ item.expireDate.split(' ')[0] }}</text>
</view>
<view class="line">
<text class="name">商务经理</text>
<text class="val">{{ item.businessManagerName }}</text>
</view>
</view>
<view class="line">
<text class="name">产品到期时间</text>
<text class="val">{{ item.expireDate.split(' ')[0] }}</text>
<view class="type">
{{ filterData[0].data.find(e => e.value === item.customerType).title }}客户
</view>
<view class="line">
<text class="name">商务经理</text>
<text class="val">{{ item.businessManagerName }}</text>
</view>
</view>
<view class="type">
{{ filterData[0].data.find(e => e.value === item.customerType).title }}客户
</view>
</view>
</li>
</ul>
<uni-load-more :status="status" />
</template>
<empty v-else text="您当前暂无有下单的客户,请快去给客户下订单吧"></empty>
</li>
</ul>
<uni-load-more :status="status" />
</template>
<empty v-else text="您当前暂无有下单的客户,请快去给客户下订单吧"></empty>
<uni-icons class="plus" type="plus-filled" size="60" color="#007eff" @click="$util.to('../clientDetail/clientDetail')"></uni-icons>
<filter-popup :data="filterData" :form.sync="filterForm" v-model="popup" title="全部筛选" height="1104rpx" @finsh="subFinsh"></filter-popup>
<uni-icons class="plus" type="plus-filled" size="60" color="#007eff" @click="$util.to('../clientDetail/clientDetail')"></uni-icons>
<filter-popup :data="filterData" :form.sync="filterForm" v-model="popup" title="全部筛选" height="1104rpx" @finsh="subFinsh"></filter-popup>
</view>
<notAuth v-if="!per"></notAuth>
</view>
</template>
@ -51,6 +55,7 @@
export default {
data() {
return {
per: true, //
popup: false,
//
filterData: [
@ -115,6 +120,7 @@
}
},
onShow() {
this.per = true
this.initRole()
},
methods: {
@ -131,12 +137,42 @@
id: 1
})
const len = this.tabs.length
// tab
if (len === 1) {
this.curTab = this.tabs[0].id
this.tabs = []
if (len) {
// tab
if (len === 1) {
this.curTab = this.tabs[0].id
this.tabs = []
}
this.initList()
} else {
this.list = [
{
orderContact: '智信云',
account: '智信云师资培训班',
businessManagerName: 'python实训系统',
expireDate: '2023-08-08'
},
{
orderContact: '智信云智信云',
account: '智信云师资培训班智信云师资培训班',
businessManagerName: 'python实训系统',
expireDate: '2023-08-08'
},
{
orderContact: '智信云智信云',
account: '智信云师资培训班智信云师资培训班',
businessManagerName: 'python实训系统实训系统',
expireDate: '2023-08-08'
},
{
orderContact: '智信云智信云',
account: '智信云师资培训班智信云师资培训班',
businessManagerName: 'python实训系统',
expireDate: '2023-08-08'
},
]
this.per = false //
}
this.initList()
},
//
getList() {

@ -48,10 +48,7 @@
</view>
<view class="line">
<text class="name">详情介绍</text>
<!-- <view class="des-html" v-html="form.mall.detailedIntroduction"></view> -->
<mp-html class="des-html" :tag-style="mpStyle" :content="form.mall.detailedIntroduction"/>
<!-- <rich-text class="des-html" :nodes="form.mall.detailedIntroduction"></rich-text> -->
<!-- <text class="val">{{ form.mall.detailedIntroduction }}</text> -->
</view>
</view>
</view>
@ -120,6 +117,14 @@
{
name: '详情介绍',
id: 0
},
{
name: '界面图',
id: 1
},
{
name: '参数',
id: 2
}
],
form: {
@ -147,12 +152,6 @@
}
},
onShow() {
this.tabs = [
{
name: '详情介绍',
id: 0
}
]
const pages = getCurrentPages()
const { options } = pages[pages.length - 1]
this.id = options.id
@ -179,15 +178,15 @@
const pics = this.form.mall.interfaceDiagram
if (pics) {
this.form.interfaceDiagram = pics.split(',')
this.tabs.push({
name: '界面图',
id: 1
})
// this.tabs.push({
// name: '',
// id: 1
// })
}
this.form.mallAnnex && this.form.mallAnnex.length && this.tabs.push({
name: '参数',
id: 2
})
// this.form.mallAnnex && this.form.mallAnnex.length && this.tabs.push({
// name: '',
// id: 2
// })
uni.hideLoading()
}).catch(e => {
uni.hideLoading()

@ -3,16 +3,17 @@
<view class="wrap">
<image class="logo" src="@/static/image/logo.png" mode="widthFix"></image>
<view class="hello">欢迎登录职站商城</view>
<button v-if="isLogin && !getPhone" class="btn phone" open-type="getPhoneNumber" @getphonenumber="onGetPhoneNumber">
<image src="@/static/image/phone.png" mode="widthFix"></image>
{{ isReg ? '获取手机号' : '绑定手机'}}
</button>
<template v-if="isLogin">
<button class="btn phone" open-type="getPhoneNumber" @getphonenumber="onGetPhoneNumber">
<image src="@/static/image/phone.png" mode="widthFix"></image>
{{ isReg ? '获取手机号' : '绑定手机'}}
</button>
<view class="tips">未注册或未绑定职站商城的手机号将帮你注册新账号</view>
</template>
<template v-else>
<view class="btn wechat" @click="login">
<!-- <image src="@/static/image/wechat.png" mode="widthFix"></image> -->
<!-- <view class="btn wechat" @click="login">
快捷登录
</view>
<!-- <view class="reg" @click="toReg">没有账号申请注册</view> -->
</view> -->
</template>
<view class="agree">
@ -36,7 +37,6 @@
value: 1
}],
isLogin: false, //
getPhone: false ,//
isReg: false, //
sessionKey: '',
openid: '',
@ -57,7 +57,6 @@
} else {
uni.clearStorageSync()
this.isLogin = false
this.getPhone = false
}
},
//
@ -260,6 +259,12 @@
font-size: 28rpx;
color: #333;
}
.tips {
margin-top: 30rpx;
font-size: 26rpx;
color: #adadad;
text-align: left;
}
.btn {
display: flex;
justify-content: center;

@ -1,6 +1,6 @@
<template>
<view>
<view :class="[{oh: !per}]">
<view :class="[{'not-auth': !per}]">
<view class="filter">
<uni-search-bar class="search" radius="30" placeholder="请输入学校名称,商务经理,订单号" v-model="keyword" clearButton="auto" cancelButton="none" />
<view :class="['sort', sort]" @click="switchSort"></view>
@ -62,13 +62,8 @@
<uni-icons class="plus" type="plus-filled" size="60" color="#007eff" @click="$util.to('/order/orderDetail/orderDetail')"></uni-icons>
<filter-popup :data="filterData" :form.sync="filterForm" v-model="popup" title="全部筛选" height="1104rpx" @finsh="subFinsh"></filter-popup>
</view>
<view v-if="!per" class="per-mask">
<view class="mask"></view>
<view class="texts">
<view class="text">权限审核中可联系下方平台运营加快审核进度</view>
<image class="qrcode" src="https://occupationlab.com/images/customer.png" mode="widthFix"></image>
</view>
</view>
<notAuth v-if="!per"></notAuth>
</view>
</template>
@ -356,9 +351,4 @@
color: #bdbdbd;
}
}
.oh {
overflow: hidden;
min-height: 100vh;
filter: blur(10px);
}
</style>

@ -17,19 +17,19 @@
</view>
<ul class="entry">
<li v-if="auth('工作台:客户')" @click="toModule('client')">
<li @click="toModule('client')">
<image class="icon" src="@/static/image/workbench/index3.png" mode="widthFix"></image>
<view class="text">客户</view>
</li>
<li v-if="auth('工作台:方案')" @click="toModule('plan')">
<li @click="toModule('plan')">
<image class="icon" src="@/static/image/workbench/index4.png" mode="widthFix"></image>
<view class="text">方案</view>
</li>
<li v-if="auth('工作台:学习')" @click="toModule('study')">
<li @click="toModule('study')">
<image class="icon" src="@/static/image/workbench/index5.png" mode="widthFix"></image>
<view class="text">学习</view>
</li>
<li v-if="auth('工作台:资讯')" @click="toModule('info')">
<li @click="toModule('info')">
<image class="icon" src="@/static/image/workbench/index6.png" mode="widthFix"></image>
<view class="text">资讯</view>
</li>

@ -277,7 +277,6 @@ ul {
position: relative;
width: 100%;
height: 100%;
// background-color: rgba(255, 255, 255, 0.8);
filter: blur(10px);
}
.texts {
@ -296,3 +295,10 @@ ul {
width: 78%;
}
}
.not-auth {
height: 100vh;
padding-bottom: 0 !important;
overflow: hidden;
filter: blur(10px);
}

@ -1,49 +1,53 @@
<template>
<view>
<view class="filter">
<uni-search-bar class="search" radius="30" placeholder="请输入方案名称" clearButton="auto" cancelButton="none" v-model="keyword" />
</view>
<view :class="[{'not-auth': !per}]">
<view class="filter">
<uni-search-bar class="search" radius="30" placeholder="请输入方案名称" clearButton="auto" cancelButton="none" v-model="keyword" />
</view>
<ul class="tab">
<li v-for="(tab, i) in classifications.slice(0, 4)" :class="{active: active === tab.id}" @click="tabChange(tab)">{{ tab.classificationName }}</li>
<uni-icons class="icon" custom-prefix="iconfont" type="icon-filter" size="22" color="#007eff" @click="typeVisible = true"></uni-icons>
</ul>
<ul class="tab">
<li v-for="(tab, i) in classifications.slice(0, 4)" :class="{active: active === tab.id}" @click="tabChange(tab)">{{ tab.classificationName }}</li>
<uni-icons class="icon" custom-prefix="iconfont" type="icon-filter" size="22" color="#007eff" @click="typeVisible = true"></uni-icons>
</ul>
<view v-if="list.length" class="list">
<view v-for="(item, i) in list" class="item" @click="toDetail(item)">
<view class="c-name ell">{{ item.title }}</view>
<view class="content">
<view class="info">
<view class="line">
<view class="name">产品</view>
<view class="val ell-wrap">
<view v-if="!item.toggle" class="product ell">{{ item.productNames }}</view>
<view v-else class="product" v-html="item.productNamesHtml"></view>
<view v-if="item.productNames && item.productNames.length > 14" class="toggle" @click.stop="toggle(item)">{{ item.toggle ? '收起' : '展开' }}</view>
<view v-if="list.length" class="list">
<view v-for="(item, i) in list" class="item" @click="toDetail(item)">
<view class="c-name ell">{{ item.title }}</view>
<view class="content">
<view class="info">
<view class="line">
<view class="name">产品</view>
<view class="val ell-wrap">
<view v-if="!item.toggle" class="product ell">{{ item.productNames }}</view>
<view v-else class="product" v-html="item.productNamesHtml"></view>
<view v-if="item.productNames && item.productNames.length > 14" class="toggle" @click.stop="toggle(item)">{{ item.toggle ? '收起' : '展开' }}</view>
</view>
</view>
<view class="line">
<view class="name">更新日期</view>
<view class="val">{{ item.updateTime }}</view>
</view>
<view class="line">
<view class="name">适用专业</view>
<view class="val">{{ item.applicableMajor }}</view>
</view>
</view>
<view class="line">
<view class="name">更新日期</view>
<view class="val">{{ item.updateTime }}</view>
</view>
<view class="line">
<view class="name">适用专业</view>
<view class="val">{{ item.applicableMajor }}</view>
</view>
<!-- <view class="detail" @click.stop="toEmail(i)">下载</view> -->
</view>
<!-- <view class="detail" @click.stop="toEmail(i)">下载</view> -->
</view>
</view>
</view>
<empty v-else></empty>
<empty v-else></empty>
<view :class="['type-popup', {active: typeVisible}]">
<uni-icons class="close" type="closeempty" size="20" color="#757575" @click="closeType"></uni-icons>
<view class="title">所属分类</view>
<view class="types">
<view v-for="(item, i) in classifications" :key="i" :class="['item', {active: active == item.id}]" @click="classificationClick(item)">{{ item.classificationName }}</view>
<view :class="['type-popup', {active: typeVisible}]">
<uni-icons class="close" type="closeempty" size="20" color="#757575" @click="closeType"></uni-icons>
<view class="title">所属分类</view>
<view class="types">
<view v-for="(item, i) in classifications" :key="i" :class="['item', {active: active == item.id}]" @click="classificationClick(item)">{{ item.classificationName }}</view>
</view>
</view>
</view>
<notAuth v-if="!per"></notAuth>
</view>
</template>
@ -52,6 +56,7 @@
export default {
data() {
return {
per: true, //
active: '',
typeVisible: false,
classifications: [],
@ -89,12 +94,48 @@
}
},
onShow() {
this.per = true
this.keyword = ''
this.active = ''
this.initList()
this.getClassification()
this.initRole()
},
methods: {
//
initRole() {
const auth = uni.getStorageSync('auth')
if (!auth.includes('工作台:方案')) {
this.per = false
this.list = [
{
title: '智信云',
productNames: '智信云师资培训班',
applicableMajor: 'python实训系统',
updateTime: '2023-08-08'
},
{
title: '智信云',
productNames: '智信云师资培训班智信云师资培训班',
applicableMajor: 'python实训系统',
updateTime: '2023-08-08'
},
{
title: '智信云智信云',
productNames: '智信云师资培训班智信云师资培训班',
applicableMajor: 'python实训系统',
updateTime: '2023-08-08'
},
{
title: '智信云',
productNames: '智信云师资培训班智信云师资培训班',
applicableMajor: 'python实训系统实训系统',
updateTime: '2023-08-08'
},
]
} else {
this.initList()
this.getClassification()
}
},
getList() {
uni.showLoading({
title: '加载中'

Loading…
Cancel
Save