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

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" "launchtype" : "local"
}, },
"mp-toutiao" :
{
"launchtype" : "local"
},
"mp-weixin" : "mp-weixin" :
{ {
"launchtype" : "local" "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 util from '@/libs/util'
import uma from './libs/uma' import uma from './libs/uma'
import share from './libs/share' import share from './libs/share'
import mtjWxSdk from './libs/mtj-wx-sdk'
Vue.config.productionTip = false Vue.config.productionTip = false
Vue.prototype.$util = util Vue.prototype.$util = util

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

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

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

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

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

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

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

@ -1,49 +1,53 @@
<template> <template>
<view> <view>
<view class="filter"> <view :class="[{'not-auth': !per}]">
<uni-search-bar class="search" radius="30" placeholder="请输入方案名称" clearButton="auto" cancelButton="none" v-model="keyword" /> <view class="filter">
</view> <uni-search-bar class="search" radius="30" placeholder="请输入方案名称" clearButton="auto" cancelButton="none" v-model="keyword" />
</view>
<ul class="tab"> <ul class="tab">
<li v-for="(tab, i) in classifications.slice(0, 4)" :class="{active: active === tab.id}" @click="tabChange(tab)">{{ tab.classificationName }}</li> <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> <uni-icons class="icon" custom-prefix="iconfont" type="icon-filter" size="22" color="#007eff" @click="typeVisible = true"></uni-icons>
</ul> </ul>
<view v-if="list.length" class="list"> <view v-if="list.length" class="list">
<view v-for="(item, i) in list" class="item" @click="toDetail(item)"> <view v-for="(item, i) in list" class="item" @click="toDetail(item)">
<view class="c-name ell">{{ item.title }}</view> <view class="c-name ell">{{ item.title }}</view>
<view class="content"> <view class="content">
<view class="info"> <view class="info">
<view class="line"> <view class="line">
<view class="name">产品</view> <view class="name">产品</view>
<view class="val ell-wrap"> <view class="val ell-wrap">
<view v-if="!item.toggle" class="product ell">{{ item.productNames }}</view> <view v-if="!item.toggle" class="product ell">{{ item.productNames }}</view>
<view v-else class="product" v-html="item.productNamesHtml"></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="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> </view>
<view class="line"> <!-- <view class="detail" @click.stop="toEmail(i)">下载</view> -->
<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>
<!-- <view class="detail" @click.stop="toEmail(i)">下载</view> -->
</view> </view>
</view> </view>
</view> <empty v-else></empty>
<empty v-else></empty>
<view :class="['type-popup', {active: typeVisible}]"> <view :class="['type-popup', {active: typeVisible}]">
<uni-icons class="close" type="closeempty" size="20" color="#757575" @click="closeType"></uni-icons> <uni-icons class="close" type="closeempty" size="20" color="#757575" @click="closeType"></uni-icons>
<view class="title">所属分类</view> <view class="title">所属分类</view>
<view class="types"> <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 v-for="(item, i) in classifications" :key="i" :class="['item', {active: active == item.id}]" @click="classificationClick(item)">{{ item.classificationName }}</view>
</view>
</view> </view>
</view> </view>
<notAuth v-if="!per"></notAuth>
</view> </view>
</template> </template>
@ -52,6 +56,7 @@
export default { export default {
data() { data() {
return { return {
per: true, //
active: '', active: '',
typeVisible: false, typeVisible: false,
classifications: [], classifications: [],
@ -89,12 +94,48 @@
} }
}, },
onShow() { onShow() {
this.per = true
this.keyword = '' this.keyword = ''
this.active = '' this.active = ''
this.initList() this.initRole()
this.getClassification()
}, },
methods: { 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() { getList() {
uni.showLoading({ uni.showLoading({
title: '加载中' title: '加载中'

Loading…
Cancel
Save