Browse Source

提交下代码

master
Myth 4 years ago
parent
commit
c704caa71a
  1. 2
      app.js
  2. 3
      app.json
  3. 4
      app.wxss
  4. 8
      pages/list/museum/index.js
  5. 1
      pages/order/components/date/index.js
  6. 2
      pages/order/components/date/index.wxml
  7. 4
      pages/pbService/feiyi/info/index.js
  8. 38
      pages/pbService/feiyi/info/index.wxml
  9. 129
      pages/pbService/feiyi/info/index.wxss
  10. 43
      pages/pbService/wwcx/info/index.wxml
  11. 129
      pages/pbService/wwcx/info/index.wxss
  12. 269
      pages/supplier/apply/index.js
  13. 5
      pages/supplier/apply/index.json
  14. 83
      pages/supplier/apply/index.wxml
  15. 98
      pages/supplier/apply/index.wxss
  16. 422
      pages/supplier/good/index.js
  17. 5
      pages/supplier/good/index.json
  18. 283
      pages/supplier/good/index.wxml
  19. 209
      pages/supplier/good/index.wxss
  20. 105
      pages/supplier/index.js
  21. 3
      pages/supplier/index.json
  22. 41
      pages/supplier/index.wxml
  23. 74
      pages/supplier/index.wxss
  24. 5
      pages/user/user.wxml
  25. 10
      project.private.config.json
  26. 2
      utils/filter.wxs
  27. 16
      utils/https.js
  28. 9
      utils/util.js

2
app.js

@ -22,7 +22,7 @@ App({
unique_key: "wechatxcx"
}).then(res => {
let data = JSON.parse(res.data);
data.isTest = data.isTest5?true:false;
data.isTest = data.isTest7?true:false;
this.globalData.configJson = data
})

3
app.json

@ -73,6 +73,9 @@
"pages/user/nickname/index",
"pages/user/likes/index",
"pages/user/email/index",
"pages/supplier/index",
"pages/supplier/apply/index",
"pages/supplier/good/index",
"pages/list/mayday/index",
"pages/list/feiyi/index",
"pages/list/haoxing/index",

4
app.wxss

@ -128,3 +128,7 @@ page{
font-size: 36rpx;
z-index: 1;
}
.com-flex {
display: flex;
align-items: center;
}

8
pages/list/museum/index.js

@ -20,13 +20,7 @@ Page({
},
gotoDetail:function(e){
let item = e.currentTarget.dataset.item;
if(item.title.indexOf('博物馆西馆')!=-1){
wx.navigateToMiniProgram({
appId: 'wxfef80ee1ab7e58a2',
path:'pages/inners/main'
})
return;
}
util.gotoDetail(item);
},
search:function(e){

1
pages/order/components/date/index.js

@ -111,7 +111,6 @@ Component({
this.setData({
moreFlag: index != -1
})
console.log(res)
})
}
})

2
pages/order/components/date/index.wxml

@ -9,7 +9,7 @@
<!-- <view class="price" wx:if="{{item.stock==null || item.price==null}}">不可定</view> -->
<view class="price" wx:if="{{item.stock==0}}">{{item.tipText?item.tipText:'售罄'}}</view>
</view>
<view wx:if="{{moreFlag}}" class="date-item more-item" bindtap="showMoreDate">
<view wx:if="{{moreFlag || !activeDate}}" class="date-item more-item" bindtap="showMoreDate">
更多
</view>
<view wx:else class="date-item more-item active" bindtap="showMoreDate">

4
pages/pbService/feiyi/info/index.js

@ -25,10 +25,8 @@ Page({
commonApi._post("pbservice/Feiyi/getDetail",{
id:id
}).then(res=>{
let htmls = res.data.content?res.data.content.split('<hr style="page-break-after:always;" class="ke-pagebreak" />'):[]
this.setData({
info:res.data,
htmls:htmls
info:res.data
})
})
},

38
pages/pbService/feiyi/info/index.wxml

@ -1,34 +1,18 @@
<!--pages/pbService/museum/info/index.wxml-->
<wxs src="../../../../utils/filter.wxs" module="tool" />
<view class="mypage">
<title title="非遗详情"></title>
<!-- <view wx:if="{{info}}">
<common-image src="{{info.default_pic_url}}" mode="widthFix" width="100%"></common-image>
<view class="info">
<image class="main-img" wx:if="{{info}}" src="{{info.default_pic_url}}" mode="widthFix"></image>
<view class="top-info" wx:if="{{info}}">
<view class="title">{{info.title}}</view>
<view class="title">{{info.protect_office}}</view>
<rich-text nodes="{{filter.formateRichText(info.content)}}"></rich-text>
<!-- <view class="subtitle"><image src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/info/infoage.png" mode="widthFix"></image><text>年代:</text>{{info.age || "暂无"}}</view> -->
<image src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/info/feiyilogo.png" mode="widthFix" class="logo"></image>
<view class="subtitle"><image src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/info/infolocation.png" mode="widthFix"></image><text>地址:</text>{{info.protect_office || "暂无"}}</view>
</view>
</view> -->
<view wx:if="{{info}}" class="bg" style="top:{{top}}px">
<swiper class="page" vertical bindchange="changeSlide">
<swiper-item>
<view class="title">{{info.title}}</view>
<view class="address">
<image src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/info/infolocation.png"></image>
<view>地址:{{info.protect_office}}</view>
<view class="content" wx:if="{{info}}">
<view class="tip">非遗介绍:</view>
<rich-text class="detail" nodes="{{tool.formateRichText(info.content)}}"></rich-text>
<image src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/info/infotitleimg.png" mode="widthFix" class="titleimg"></image>
</view>
<image style="width:690rpx;height:560rpx;display:block;margin:0 auto;margin-top:30rpx" src="{{info.default_pic_url}}" mode="aspectFill"></image>
<image mode="widthFix" class="infoline1" src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/info/infoline1.png"></image>
<image mode="widthFix" class="infoline2" src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/info/infoline2.png"></image>
<image mode="widthFix" class="infoline3" src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/info/infoline3.png"></image>
</swiper-item>
<swiper-item wx:for="{{htmls}}">
<view class="title title2">{{info.title}}</view>
<image mode="widthFix" class="infoline1" style="position:static" src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/info/infoline1.png"></image>
<rich-text class="detail" nodes="{{tool.formateRichText(item)}}"></rich-text>
<image mode="widthFix" class="infoline2" src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/info/infoline2.png"></image>
<image mode="widthFix" class="infoline3" src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/info/infoline3.png"></image>
</swiper-item>
</swiper>
<image mode="widthFix" class="infoarrow{{currentIndex<htmls.length?' ani':''}}" src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/info/{{currentIndex<htmls.length?'infoarrow':'infoover'}}.png"></image>
<image src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/info/infobottomimg.png" mode="widthFix" class="bottomimg"></image>
</view>

129
pages/pbService/feiyi/info/index.wxss

@ -1,95 +1,78 @@
/* pages/pbService/museum/info/index.wxss */
/* .info {
margin: 30rpx;
color: #333;
font-size: 26rpx;
.main-img {
display: block;
width: 100%;
}
.title {
font-size: 30rpx;
margin-bottom: 22rpx;
} */
page {
.subtitle {
display: flex;
align-items: center;
color: #333;
font-size: 28rpx;
height: 70rpx;
}
.bg {
background: url(https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/info/infobg.png);
background-size: 100% 100%;
position: absolute;
left: 0;
right: 0;
bottom: 0;
.subtitle image {
display: block;
width: 30rpx;
margin-right: 18rpx;
flex-shrink: 0;
}
.title {
display: flex;
align-items: flex-end;
height: 190rpx;
.top-info {
position: relative;
z-index: 1;
margin-top: -20rpx;
border-radius: 20rpx 20rpx 0 0;
background: white;
padding: 30rpx;
}
.top-info .title {
color: #0B898E;
font-size: 48rpx;
font-weight: bold;
margin-left: 40rpx;
margin-bottom: 20rpx;
margin-bottom: 40rpx;
}
.infoline1 {
display: block;
width: 720rpx;
.logo {
position: absolute;
left: 0;
top: 190rpx;
right: 20rpx;
bottom: 19rpx;
width: 204rpx;
display: block;
}
.page {
width: 100%;
height: 100%;
.content {
position: relative;
background: #0B898E;
padding: 30rpx;
padding-bottom: 50rpx;
}
.address {
display: flex;
align-items: center;
font-size: 28rpx;
color: #333333;
padding: 18rpx 0;
.content .tip {
color: #fff;
font-size: 32rpx;
font-weight: bold;
line-height: 80rpx;
}
.address image {
.content .detail {
padding: 20rpx;
border-radius: 10rpx;
background: white;
display: block;
flex-shrink: 0;
margin-left: 38rpx;
width: 30rpx;
height: 30rpx;
margin-right: 16rpx;
margin-top: 20rpx;
}
.infoline3,.infoline2,.infoarrow {
.titleimg {
position: absolute;
width: 250rpx;
bottom: 47rpx;
left: 0;
display: block;
width: 100%;
top: 20rpx;
}
.infoline3 {
right: 0;
}
.infoline2 {
.bottomimg {
position: absolute;
left: 0;
}
.infoarrow {
width: 60rpx;
bottom: 26rpx;
left: 50%;
margin-left: -30rpx;
}
.infoarrow.ani {
-webkit-animation: bounce-down 1.6s linear infinite;animation: bounce-down 1.6s linear infinite;
}
.detail {
bottom: 0;
display: block;
margin: 20rpx 30rpx;
font-size: 30rpx;
}
@keyframes bounce-down {
25% {transform: translateY(-10rpx);opacity:0.3;}
50%{transform: translateY(0);opacity:1;}
75% {transform: translateY(10rpx);opacity:1;}
100% {transform: translateY(0);opacity:1;}
width: 100%;
}
.title2.title{
font-size: 36rpx;
height: 126rpx;
margin-bottom: 0;
.mypage {
background: #0B898E;
min-height: 100vh;
position: relative;
}

43
pages/pbService/wwcx/info/index.wxml

@ -1,41 +1,18 @@
<!--pages/pbService/museum/info/index.wxml-->
<wxs src="../../../../utils/filter.wxs" module="tool" />
<view class="mypage">
<title title="文物详情"></title>
<image class="main-img" wx:if="{{info}}" src="{{info.logo}}" mode="widthFix"></image>
<view class="content" wx:if="{{info}}">
<view class="top-info" wx:if="{{info}}">
<view class="title">{{info.name}}</view>
<view class="subtitle" wx:if="{{info.collection_name}}"><text>藏于:</text>{{info.collection_name}}</view>
<view class="subtitle" wx:if="{{info.level_name}}"><text>等级:</text>{{info.level_name}}</view>
<view class="subtitle" wx:if="{{info.age}}"><text>历史年代:</text>{{info.age}}</view>
<view class="detail">
<view style="margin-bottom:10rpx">文物介绍</view>
<view>{{info.introduction}}</view>
</view>
<view class="subtitle"><image src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/info/infoage.png" mode="widthFix"></image><text>年代:</text>{{info.age || "暂无"}}</view>
<image src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/info/wenwulogo.png" mode="widthFix" class="logo"></image>
<view class="subtitle"><image src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/info/infolocation.png" mode="widthFix"></image><text>地址:</text>{{info.collection_name || "暂无"}}</view>
</view>
<!-- <view wx:if="{{info}}" class="bg" style="top:{{top}}px">
<swiper class="page" vertical bindchange="changeSlide">
<swiper-item>
<view class="title">{{info.name}}</view>
<view class="address">
<image src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/info/infoage.png"></image>
<view>历史年代:{{info.age}}</view>
<view class="content" wx:if="{{info}}">
<view class="tip">文物介绍:</view>
<view class="detail">{{info.introduction}}</view>
<image src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/info/infotitleimg.png" mode="widthFix" class="titleimg"></image>
</view>
<view class="address">
<image src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/info/infolocation.png"></image>
<view>地址:{{info.address}}</view>
<image src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/info/infobottomimg.png" mode="widthFix" class="bottomimg"></image>
</view>
<image style="width:690rpx;height:560rpx;display:block;margin:0 auto;margin-top:30rpx" src="{{info.logo}}" mode="aspectFill"></image>
<image mode="widthFix" class="infoline1" src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/info/infoline1.png"></image>
<image mode="widthFix" class="infoline2" src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/info/infoline2.png"></image>
<image mode="widthFix" class="infoline3" src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/info/infoline3.png"></image>
</swiper-item>
<swiper-item wx:for="{{htmls}}">
<view class="title title2">{{info.name}}</view>
<image mode="widthFix" class="infoline1" style="position:static" src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/info/infoline1.png"></image>
<rich-text class="detail" nodes="{{tool.formateRichText(item)}}"></rich-text>
<image mode="widthFix" class="infoline2" src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/info/infoline2.png"></image>
<image mode="widthFix" class="infoline3" src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/info/infoline3.png"></image>
</swiper-item>
</swiper>
<image mode="widthFix" class="infoarrow{{currentIndex<htmls.length?' ani':''}}" src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/info/{{currentIndex<htmls.length?'infoarrow':'infoover'}}.png"></image>
</view> -->

129
pages/pbService/wwcx/info/index.wxss

@ -4,99 +4,74 @@
width: 100%;
}
.content {
margin: 30rpx;
color: #333;
font-size: 30rpx;
}
.subtitle {
margin-bottom: 10rpx;
font-size: 26rpx;
display: flex;
align-items: center;
color: #333;
font-size: 28rpx;
height: 70rpx;
}
.detail {
margin-top: 40rpx;
font-size: 26rpx;
.subtitle image {
display: block;
width: 30rpx;
margin-right: 18rpx;
flex-shrink: 0;
}
/* .bg {
background: url(https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/info/infobg.png);
background-size: 100% 100%;
position: absolute;
left: 0;
right: 0;
bottom: 0;
.top-info {
position: relative;
z-index: 1;
margin-top: -20rpx;
border-radius: 20rpx 20rpx 0 0;
background: white;
padding: 30rpx;
}
.title {
display: flex;
align-items: flex-end;
height: 190rpx;
.top-info .title {
color: #0B898E;
font-size: 48rpx;
font-weight: bold;
margin-left: 40rpx;
margin-bottom: 20rpx;
margin-bottom: 40rpx;
}
.infoline1 {
display: block;
width: 720rpx;
.logo {
position: absolute;
left: 0;
top: 190rpx;
}
.page {
width: 100%;
height: 100%;
right: 49rpx;
bottom: 19rpx;
width: 204rpx;
display: block;
}
.address {
display: flex;
align-items: center;
font-size: 28rpx;
color: #333333;
padding: 18rpx 0;
.content {
position: relative;
background: #0B898E;
padding: 30rpx;
padding-bottom: 50rpx;
}
.content .tip {
color: #fff;
font-size: 32rpx;
font-weight: bold;
line-height: 80rpx;
}
.address image {
display: block;
flex-shrink: 0;
margin-left: 38rpx;
width: 30rpx;
height: 30rpx;
margin-right: 16rpx;
.content .detail {
padding: 20rpx;
border-radius: 10rpx;
background: white;
margin-top: 20rpx;
}
.infoline3,.infoline2,.infoarrow {
.titleimg {
position: absolute;
width: 250rpx;
bottom: 47rpx;
left: 0;
display: block;
width: 100%;
top: 20rpx;
}
.infoline3 {
right: 0;
}
.infoline2 {
.bottomimg {
position: absolute;
left: 0;
}
.infoarrow {
width: 60rpx;
bottom: 26rpx;
left: 50%;
margin-left: -30rpx;
}
.infoarrow.ani {
-webkit-animation: bounce-down 1.6s linear infinite;animation: bounce-down 1.6s linear infinite;
}
.detail {
bottom: 0;
display: block;
margin: 20rpx 30rpx;
font-size: 30rpx;
width: 100%;
}
@keyframes bounce-down {
25% {transform: translateY(-10rpx);opacity:0.3;}
50%{transform: translateY(0);opacity:1;}
75% {transform: translateY(10rpx);opacity:1;}
100% {transform: translateY(0);opacity:1;}
.mypage {
background: #0B898E;
min-height: 100vh;
position: relative;
}
.title2.title{
font-size: 36rpx;
height: 126rpx;
margin-bottom: 0;
} */

269
pages/supplier/apply/index.js

@ -0,0 +1,269 @@
import https from "../../../utils/https";
// pages/supplier/apply/index.js
import util from "../../../utils/util"
Page({
/**
* 页面的初始数据
*/
data: {
info:{
supplier_name:"",
manager_name:"",
banner_img:"",
licence_img:"",
business_license:"",
address:"",
email:"",
manager_tel:"",
phone:""
},
error:{
manager_tel:"",
phone:"",
email:""
},
submitFlag:false,
oldInfo:null
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
let info = this.data.info;
https.user_post("supplierapply/get_supplier_apply",{}).then(res=>{
if(res.data){
for(let i in info){
info[i] = res.data[i];
}
this.setData({
info:info,
oldInfo:res.data,
submitFlag:true
})
}
})
},
changeInfo(e){
let info = this.data.info,name = e.currentTarget.dataset.name;
info[name] = e.detail.value
this.setData({
info:info
})
let flag = true;
for(let i in info){
if(!info[i]){
flag = false;
break;
}
else if((i=='phone' || i=='manager_tel') && !util.isTel(info[i])){
// 判断手机号
flag = false;
break;
}
else if(i=='email' && !util.isMail(info[i])){
// 判断手机号
flag = false;
break;
}
}
let error = this.data.error;
if(name=='phone' && util.isTel(info[name])){
error[name] = "";
}
if(name=='manager_tel' && util.isTel(info[name])){
error[name] = "";
}
if(name=='email' && util.isMail(info[name])){
error[name] = "";
}
if(name=='supplier_name' && info[name]){
error[name] = "";
}
if(name=='manager_name' && info[name]){
error[name] = "";
}
if(name=='address' && info[name]){
error[name] = "";
}
this.setData({
submitFlag:flag,
error:error
})
},
blur:function(e){
let error = this.data.error,name = e.currentTarget.dataset.name,info = this.data.info;
if(name=='phone' && !util.isTel(info[name])){
error[name] = "请输入正确的联系电话";
}
if(name=='manager_tel' && !util.isTel(info[name])){
error[name] = "请输入正确的负责人联系电话";
}
if(name=='email' && !util.isMail(info[name])){
error[name] = "请输入正确的邮箱";
}
if(name=='supplier_name' && !info[name]){
error[name] = "请输入名称";
}
if(name=='manager_name' && !info[name]){
error[name] = "请输入姓名";
}
if(name=='address' && !info[name]){
error[name] = "请输入地址";
}
this.setData({
error:error
})
},
upload(e){
let name = e.currentTarget.dataset.name,that = this,info = this.data.info,error=this.data.error;
wx.chooseImage({
count: 1,
success:function(res){
if(res && res.tempFilePaths && res.tempFilePaths[0]){
wx.showLoading({
title: '上传中',
mask:true
})
wx.uploadFile({
filePath: res.tempFilePaths[0],
name: 'file',
url: https.baseUrl + 'pbservice.other/upload',
header:{
token: wx.getStorageSync('jstrip_token'),
},
success:function(r){
var r = JSON.parse(r.data);
let img = r.data.url;
info[name] = img;
error[name]=""
that.setData({
info:info,
error:error
})
wx.hideLoading();
}
})
}
}
})
},
delimg(e){
let name = e.currentTarget.dataset.name,info = this.data.info,that=this;
wx.showModal({
title:"提示",
content:"确定删除此照片?",
success(res){
console.log(res)
if(res.confirm){
// 确定删除
info[name]="";
that.setData({
info:info
})
}
}
})
},
submit:function(){
if(this.data.submitFlag){
https.user_post("supplierapply/apply",this.data.info).then(res=>{
if(res && res.code==1){
wx.showToast({
title: '提交成功',
icon:'success'
})
setTimeout(()=>{
util.back()
},1000)
}
})
}
else {
let info = this.data.info,error={};
for(let name in info){
if(name=='phone' && !util.isTel(info[name])){
error[name] = "请输入正确的联系电话";
}
if(name=='manager_tel' && !util.isTel(info[name])){
error[name] = "请输入正确的负责人联系电话";
}
if(name=='email' && !util.isMail(info[name])){
error[name] = "请输入正确的邮箱";
}
if(name=='supplier_name' && !info[name]){
error[name] = "请输入名称";
}
if(name=='manager_name' && !info[name]){
error[name] = "请输入姓名";
}
if(name=='address' && !info[name]){
error[name] = "请输入地址";
}
if(name=='licence_img' && !info[name]){
error[name] = "请上传营业执照";
}
if(name=='business_license' && !info[name]){
error[name] = "请上传经营许可证";
}
if(name=='banner_img' && !info[name]){
error[name] = "请上传门头照";
}
}
this.setData({
error:error
})
}
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})

5
pages/supplier/apply/index.json

@ -0,0 +1,5 @@
{
"usingComponents": {
"title":"/pages/component/TitleHeader"
}
}

83
pages/supplier/apply/index.wxml

@ -0,0 +1,83 @@
<!--pages/supplier/apply/index.wxml-->
<title title="添加供应商信息"></title>
<view wx:if="{{oldInfo}}" class="error-msg com-flex texttype{{oldInfo.audit}}">
<view class="error-box">{{oldInfo.audit_text}}</view>
<view class="error-text">{{oldInfo.audit==2?oldInfo.refund_msg:"商户"+oldInfo.audit_text}}</view>
</view>
<view class="input-item">
<view class="input-item-in">
<text>名称</text>
<input disabled="{{oldInfo && oldInfo.audit!=2}}" bindinput="changeInfo" value="{{info.supplier_name}}" bindblur="blur" data-name="supplier_name" type="text" placeholder="请输入供应商名称" />
</view>
<view class="error-tip" wx:if="{{error.supplier_name}}">{{ error.supplier_name }}</view>
</view>
<view class="input-item">
<view class="input-item-in">
<text>姓名</text>
<input disabled="{{oldInfo && oldInfo.audit!=2}}" bindinput="changeInfo" bindblur="blur" value="{{info.manager_name}}" data-name="manager_name" type="text" placeholder="请输入负责人姓名" />
</view>
<view class="error-tip" wx:if="{{error.manager_name}}">{{ error.manager_name }}</view>
</view>
<view class="input-item">
<view class="input-item-in">
<text>联系电话</text>
<input disabled="{{oldInfo && oldInfo.audit!=2}}" bindinput="changeInfo" bindblur="blur" value="{{info.phone}}" data-name="phone" type="number" placeholder="请输入联系电话" />
</view>
<view class="error-tip" wx:if="{{error.phone}}">{{ error.phone }}</view>
</view>
<view class="input-item">
<view class="input-item-in">
<text>负责人联系电话</text>
<input disabled="{{oldInfo && oldInfo.audit!=2}}" bindinput="changeInfo" bindblur="blur" value="{{info.manager_tel}}" data-name="manager_tel" type="number" placeholder="请输入负责人联系电话" />
</view>
<view class="error-tip" wx:if="{{error.manager_tel}}">{{ error.manager_tel }}</view>
</view>
<view class="input-item">
<view class="input-item-in">
<text>邮箱</text>
<input disabled="{{oldInfo && oldInfo.audit!=2}}" bindinput="changeInfo" bindblur="blur" value="{{info.email}}" data-name="email" type="text" placeholder="请输入负责人邮箱" />
</view>
<view class="error-tip" wx:if="{{error.email}}">{{ error.email }}</view>
</view>
<view class="input-item">
<view class="input-item-in">
<text>门头照</text>
<view class="com-flex" wx:if="{{info.banner_img}}">
<image src="{{info.banner_img}}" mode="aspectFill"></image>
<view wx:if="{{!oldInfo || oldInfo && oldInfo.audit==2}}" class="iconfont icon-close" bindtap="delimg" data-name="banner_img"></view>
</view>
<view class="btn" bindtap="upload" data-name="banner_img" wx:else>点击上传</view>
</view>
<view class="error-tip" wx:if="{{error.banner_img}}">{{ error.banner_img }}</view>
</view>
<view class="input-item">
<view class="input-item-in">
<text>营业执照</text>
<view class="com-flex" wx:if="{{info.licence_img}}">
<image src="{{info.licence_img}}" mode="aspectFill"></image>
<view wx:if="{{!oldInfo || oldInfo && oldInfo.audit==2}}" class="iconfont icon-close" bindtap="delimg" data-name="licence_img"></view>
</view>
<view class="btn" bindtap="upload" data-name="licence_img" wx:else>点击上传</view>
</view>
<view class="error-tip" wx:if="{{error.licence_img}}">{{ error.licence_img }}</view>
</view>
<view class="input-item">
<view class="input-item-in">
<text>经营许可证</text>
<view class="com-flex" wx:if="{{info.business_license}}">
<image src="{{info.business_license}}" mode="aspectFill"></image>
<view wx:if="{{!oldInfo || oldInfo && oldInfo.audit==2}}" class="iconfont icon-close" bindtap="delimg" data-name="business_license"></view>
</view>
<view class="btn" bindtap="upload" data-name="business_license" wx:else>点击上传</view>
</view>
<view class="error-tip" wx:if="{{error.business_license}}">{{ error.business_license }}</view>
</view>
<view class="input-item">
<view class="input-item-in">
<text>地址</text>
<input disabled="{{oldInfo && oldInfo.audit!=2}}" bindinput="changeInfo" bindblur="blur" value="{{info.address}}" data-name="address" type="text" placeholder="请输入地址" />
</view>
<view class="error-tip" wx:if="{{error.address}}">{{ error.address }}</view>
</view>
<view style="height:120rpx" wx:if="{{!oldInfo || oldInfo && oldInfo.audit==2}}"></view>
<view class="btnall{{submitFlag?' ok':''}}" bindtap="submit" wx:if="{{!oldInfo || oldInfo && oldInfo.audit==2}}">确定</view>

98
pages/supplier/apply/index.wxss

@ -0,0 +1,98 @@
/* pages/supplier/apply/index.wxss */
.input-item {
padding: 10rpx 0;
margin: 0 20rpx;
border-bottom: 1px solid #D8D8D8;
}
.input-item-in {
display: flex;
justify-content: space-between;
align-items: center;
line-height: 60rpx;
padding: 20rpx 0;
}
.input-item-in image {
width: 200rpx;
height: 133rpx;
display: block;
flex-shrink: 0;
border-radius: 13rpx;
}
.input-item-in .icon-close {
width: 40rpx;
line-height: 40rpx;
background: #6490F5;
border-radius: 50%;
text-align: center;
color: #fff;
margin-left: 40rpx;
}
.input-item text {
color: #333333;
font-size: 31rpx;
flex-shrink: 0;
}
.input-item input {
display: block;
width: 400rpx;
text-align: right;
font-size: 30rpx;
flex: 1;
margin-left: 20rpx;
}
.input-item .btn {
width: 173rpx;
height: 60rpx;
background: linear-gradient(180deg, #749DFC, #4375E7);
border-radius: 30rpx;
color: #fff;
font-size: 31rpx;
text-align: center;
}
.btnall {
position: fixed;
left: 20rpx;
right: 20rpx;
bottom: 30rpx;
line-height: 80rpx;
background: #BDBFBF;
border-radius: 40rpx;
text-align: center;
color: #fff;
text-align: center;
z-index: 11;
}
.btnall.ok {
background: #4375E7;
}
.error-tip {
text-align: right;
color: #FF5555;
font-size: 24rpx;
}
.error-msg {
padding: 10rpx 20rpx;
background: #F95440;
font-size: 24rpx;
color: #F95440;
}
.error-box {
background: #fff;
padding: 0 14rpx;
line-height: 36rpx;
border-radius: 18rpx;
margin-right: 20rpx;
flex-shrink: 0;
}
.texttype1 {
background: #68CB59;
color: #68CB59;
}
.texttype0 {
background: #4375E7;
color: #4375E7;
}
.error-text {
flex: 1;
color: #fff;
}

422
pages/supplier/good/index.js

@ -0,0 +1,422 @@
// pages/supplier/good/index.js
import https from "../../../utils/https"
import util from "../../../utils/util"
Page({
/**
* 页面的初始数据
*/
data: {
supplierinfo:null,
error:{},
info:{
"product_name":""
},
sku:[],
oldSku:[],
submitFlag:false,
nameerror:false,
skuerror:false,
showFlagIndex:-1,
flagText:""
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
https.user_post("supplierapply/get_supplier_apply",{}).then(res=>{
if(res.data){
this.setData({
supplierinfo:res.data
})
}
https.user_post('supplierapply/add_sku',{},'GET').then(res=>{
console.log(res.data);
if(res.data.length>0){
this.setData({
info:{
product_name:res.data[0].product_name
},
oldSku:res.data,
submitFlag:true
})
// 初始化规格信息
let sku = [];
res.data.map(item=>{
sku.push({
sku_img:{
value:item.sku_img
},
sku_name:{
value:item.sku_name
},
line_desc:{
value:item.line_desc
},
use_desc:{
value:item.use_desc
},
cost_desc:{
value:item.cost_desc
},
mark_price:{
value:item.mark_price
},
cost_price:{
value:item.cost_price
},
reserve_desc:{
value:item.reserve_desc
},
available_time:{
value:item.available_time
},
is_realname:{
value:item.is_realname+""
},
refund_desc:{
value:item.refund_desc
},
stock:{
value:item.stock
},
id:{
value:item.id
},
audit:{
value:item.audit
},
audit_text:{
value:item.audit_text
},
refund_msg:{
value:item.refund_msg
},
show:true
})
})
this.setData({
sku:sku
})
}
})
});
},
changeProductName(e){
let info = this.data.info;
info.product_name = e.detail.value;
this.setData({
info:info,
nameerror:info.product_name==""
})
this.checkOk()
},
checkOk:function(){
let flag = true,sku=this.data.sku;
if(this.data.info.product_name=="" || sku.length==0){
flag = false;
}
if(flag){
for(let i=0;i<sku.length;i++){
for(let key in sku[i]){
if(key!='show' && key!='refund_msg' && key!='audit' && key!='audit_text' && (sku[i][key].value==="" || sku[i][key].value.length==0)){
console.log(key)
flag = false;
break;
}
}
}
}
this.setData({
submitFlag:flag
})
},
submit(){
if(this.data.submitFlag){
let sku = [];
this.data.sku.map(item=>{
let skuItem={};
for(let key in item){
if(key=='sku_img'){
skuItem.sku_img = item.sku_img.value.join(",");
}
else if(key!='show' && key!='audit' && key!='audit_text' && key!='refund_msg'){
skuItem[key] = item[key].value;
}
}
sku.push(skuItem);
})
https.user_post("supplierapply/add_sku",{
product_name:this.data.info.product_name,
sku:sku
}).then(res=>{
if(res.code==1){
wx.showToast({
title: '添加成功',
icon:'success',
mask:true
})
setTimeout(()=>{
util.back()
},1000)
}
console.log(res)
})
}
else {
let sku = this.data.sku;
if(sku.length==0){
this.setData({
skuerror:true,
nameerror:this.data.info.product_name==""
})
return;
}
sku.map(item=>{
for(let key in item){
if(key!='show' && (item[key].value=="" || item[key].value.length==0)){
item[key].error = true
}
}
})
this.setData({
sku:sku,
nameerror:this.data.info.product_name==""
})
}
},
changeInfo(e){
let name = e.currentTarget.dataset.name,sku=this.data.sku,index = e.currentTarget.dataset.index;
sku[index][name].value = e.detail.value;
if(e.detail.value!=""){
sku[index][name].error=false;
}
this.setData({
sku:sku
})
this.checkOk()
},
blurname(){
this.setData({
nameerror:this.data.info.product_name==""
})
},
blur(e){
let name = e.currentTarget.dataset.name,sku=this.data.sku,index = e.currentTarget.dataset.index;
if(sku[index][name].value==""){
sku[index][name].error=true;
}
this.setData({
sku:sku
})
},
addSku(){
let sku = this.data.sku;
sku.push({
sku_name:{
value:""
},
sku_img:{
value:[]
},
line_desc:{
value:""
},
use_desc:{
value:""
},
cost_desc:{
value:""
},
mark_price:{
value:""
},
cost_price:{
value:""
},
reserve_desc:{
value:""
},
available_time:{
value:""
},
is_realname:{
value:"0"
},
refund_desc:{
value:""
},
stock:{
value:""
},
show:true
})
this.setData({
sku:sku,
skuerror:false,
submitFlag:false
})
},
delSku(e){
let index = e.currentTarget.dataset.index,sku = this.data.sku,_this=this;
wx.showModal({
title:"确定删除此规格?",
content:"此页面信息不会保存",
success(res){
if(res.confirm){
sku.splice(index,1);
_this.setData({
sku:sku
})
_this.checkOk()
}
}
})
},
delImg(e){
let index = e.currentTarget.dataset.index,sku = this.data.sku,_this=this,imgindex = e.currentTarget.dataset.imgindex;
wx.showModal({
title:"提示",
content:"确定删除此照片?",
success(res){
if(res.confirm){
sku[index].sku_img.value.splice(imgindex,1);
_this.setData({
sku:sku
})
}
}
})
},
arrow(e){
let sku = this.data.sku,index = e.currentTarget.dataset.index;
sku[index].show = !sku[index].show;
this.setData({
sku:sku
})
},
realCheck(e){
let index = e.currentTarget.dataset.index,value = e.currentTarget.dataset.value,sku=this.data.sku;
if(sku[index].audit && sku[index].audit.value<2){
return;
}
sku[index].is_realname.value = value;
this.setData({
sku:sku
})
this.checkOk()
},
upload(e){
let index = e.currentTarget.dataset.index,sku=this.data.sku,that=this;
wx.chooseImage({
count: 3,
success:function(res){
if(res && res.tempFilePaths && res.tempFilePaths.length>0){
wx.showLoading({
title: '上传中',
mask:true
})
let ajaxes=[];
res.tempFilePaths.map(item=>{
let ajax = new Promise((resolve,reject)=>{
wx.uploadFile({
filePath: item,
name: 'file',
url: https.baseUrl + 'pbservice.other/upload',
header:{
token: wx.getStorageSync('jstrip_token'),
},
success:function(r){
var r = JSON.parse(r.data);
let img = r.data.url;
resolve(img);
}
})
})
ajaxes.push(ajax);
})
Promise.all(ajaxes).then(res=>{
sku[index].sku_img.value = sku[index].sku_img.value.concat(res);
that.setData({
sku:sku
})
that.checkOk()
wx.hideLoading({})
}).catch(err=>{
console.log(err)
wx.showToast({
title: '图片上传失败',
icon:'none'
})
})
}
}
})
},
showMsg(e){
let item = e.currentTarget.dataset.item;
if(item.audit.value==2){
wx.showModal({
title:"审核失败",
content:item.refund_msg.value,
showCancel:false
})
}
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
showFlag(e){
this.setData({
showFlagIndex:e.currentTarget.dataset.index,
flagText:e.currentTarget.dataset.text
})
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})

5
pages/supplier/good/index.json

@ -0,0 +1,5 @@
{
"usingComponents": {
"title":"/pages/component/TitleHeader"
}
}

283
pages/supplier/good/index.wxml

@ -0,0 +1,283 @@
<!--pages/supplier/good/index.wxml-->
<title title="添加商品信息"></title>
<view style="background:white">
<view class="input-item">
<view class="input-item-in">
<text>供应商名称</text>
<input disabled="{{true}}" value="{{supplierinfo.supplier_name}}" type="text" placeholder="请输入供应商名称" />
</view>
</view>
<view class="input-item" style="border:none">
<view class="input-item-in">
<text>商品名称</text>
<input disabled="{{oldSku.length>0}}" value="{{info.product_name}}" bindblur="blurname" data-name="product_name" bindinput="changeProductName" type="text" placeholder="请输入商品名称" />
</view>
<view class="error-tip" wx:if="{{nameerror}}">请输入商品名称</view>
</view>
</view>
<view class="sku-box" wx:for="{{sku}}">
<view class="com-flex sku-top">
<text>规格{{index+1}}</text>
<view wx:if="{{item.audit}}" class="com-flex sku-status sku-status{{item.audit.value}}" bindtap="showMsg" data-item="{{item}}">
<view class="sku-status-box">{{item.audit_text.value}}</view>
<view class="sku-status-reject" wx:if="{{item.audit.value==2}}">点击查看原因 >></view>
</view>
<view style="flex:1"></view>
<view class="com-flex" bindtap="delSku" data-index="{{index}}" wx:if="{{item.audit && item.audit.value==2 || !item.audit}}">
<image src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/supplier/delicon.png" mode="widthFix"></image>
<view>删除</view>
</view>
</view>
<view class="input-item">
<view class="input-item-in">
<text>规格名称</text>
<input value="{{item.sku_name.value}}" disabled="{{item.audit && item.audit.value<2}}" bindblur="blur" data-index="{{index}}" data-name="sku_name" bindinput="changeInfo" type="text" placeholder="请输入规格名称" />
</view>
<view class="error-tip" wx:if="{{item.sku_name.error}}">请输入规格名称</view>
</view>
<view wx:if="{{item.show}}">
<view class="input-item">
<view class="input-item-in">
<text>规格图片</text>
<view style="flex:1"></view>
<view class="img-box" wx:for="{{item.sku_img.value}}" wx:for-index="j" wx:for-item="img">
<image src="{{img}}" mode="aspectFill"></image>
<view class="iconfont icon-close" wx:if="{{item.audit && item.audit.value==2 || !item.audit}}" bindtap="delImg" data-index="{{index}}" data-imgindex="{{j}}"></view>
</view>
<view class="btn" style="margin-left:30rpx" bindtap="upload" data-index="{{index}}" data-name="sku_img" wx:if="{{item.sku_img && item.sku_img.value.length<3 && (item.audit && item.audit.value==2 || !item.audit)}}">点击上传</view>
</view>
<view class="error-tip" wx:if="{{item.sku_name.error}}">请上传规格图片</view>
</view>
<view class="input-item">
<view class="input-item-in" style="align-items:flex-start">
<text>线路详情</text>
<view class="com-flex sl-box" bindtap="showFlag" data-index="1" data-text="线路详情">
<image mode="widthFix" src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/supplier/sl.png"></image>
<text>示例</text>
</view>
<textarea auto-height disabled="{{item.audit && item.audit.value<2}}" value="{{item.line_desc.value}}" bindblur="blur" data-name="line_desc" data-index="{{index}}" bindinput="changeInfo" maxlength="-1" placeholder="请输入线路详情描述"></textarea>
</view>
<view class="error-tip" wx:if="{{item.line_desc.error}}">请输入线路详情</view>
</view>
<view class="input-item">
<view class="input-item-in" style="align-items:flex-start">
<text>使用说明</text>
<view class="com-flex sl-box" bindtap="showFlag" data-index="2" data-text="使用说明">
<image mode="widthFix" src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/supplier/sl.png"></image>
<text>示例</text>
</view>
<textarea auto-height disabled="{{item.audit && item.audit.value<2}}" value="{{item.use_desc.value}}" data-name="use_desc" bindblur="blur" data-index="{{index}}" bindinput="changeInfo" maxlength="-1" placeholder="请输入使用说明描述"></textarea>
</view>
<view class="error-tip" wx:if="{{item.use_desc.error}}">请输入使用说明</view>
</view>
<view class="input-item">
<view class="input-item-in" style="align-items:flex-start">
<text>费用说明</text>
<view class="com-flex sl-box" bindtap="showFlag" data-index="3" data-text="费用说明">
<image mode="widthFix" src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/supplier/sl.png"></image>
<text>示例</text>
</view>
<textarea auto-height disabled="{{item.audit && item.audit.value<2}}" value="{{item.cost_desc.value}}" data-name="cost_desc" bindblur="blur" data-index="{{index}}" bindinput="changeInfo" maxlength="-1" placeholder="请输入费用说明"></textarea>
</view>
<view class="error-tip" wx:if="{{item.cost_desc.error}}">请输入费用说明</view>
</view>
<view class="input-item">
<view class="input-item-in">
<text>售价</text>
<input value="{{item.mark_price.value}}" disabled="{{item.audit && item.audit.value<2}}" data-name="mark_price" bindinput="changeInfo" bindblur="blur" data-index="{{index}}" type="number" placeholder="填写售价" />
</view>
<view class="error-tip" wx:if="{{item.mark_price.error}}">请输入售价</view>
</view>
<view class="input-item">
<view class="input-item-in">
<text>结算价</text>
<input value="{{item.cost_price.value}}" disabled="{{item.audit && item.audit.value<2}}" data-name="cost_price" bindinput="changeInfo" data-index="{{index}}" bindblur="blur" type="number" placeholder="填写结算价" />
</view>
<view class="error-tip" wx:if="{{item.cost_price.error}}">请输入结算价</view>
</view>
<view class="input-item">
<view class="input-item-in">
<text>库存</text>
<input value="{{item.stock.value}}" data-name="stock" disabled="{{item.audit && item.audit.value<2}}" bindinput="changeInfo" type="number" bindblur="blur" data-index="{{index}}" placeholder="填写库存" />
</view>
<view class="error-tip" wx:if="{{item.stock.error}}">请输入库存</view>
</view>
<view class="input-item">
<view class="input-item-in" style="align-items:flex-start">
<text>预定须知</text>
<view class="com-flex sl-box" bindtap="showFlag" data-index="4" data-text="预定须知">
<image mode="widthFix" src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/supplier/sl.png"></image>
<text>示例</text>
</view>
<textarea auto-height value="{{item.reserve_desc.value}}" disabled="{{item.audit && item.audit.value<2}}" data-name="reserve_desc" data-index="{{index}}" bindblur="blur" bindinput="changeInfo" maxlength="-1" placeholder="请输入预定须知"></textarea>
</view>
<view class="error-tip" wx:if="{{item.reserve_desc.error}}">请输入预定须知</view>
</view>
<view class="input-item">
<view class="input-item-in">
<text>可售时间</text>
<input value="{{item.available_time.value}}" data-name="available_time" disabled="{{item.audit && item.audit.value<2}}" bindinput="changeInfo" data-index="{{index}}" bindblur="blur" type="text" placeholder="请输入可售时间" />
</view>
<view class="error-tip" wx:if="{{item.available_time.error}}">请输入可售时间</view>
</view>
<view class="input-item">
<view class="input-item-in">
<text>是否实名</text>
<view style="flex:1"></view>
<view class="com-flex" bindtap="realCheck" data-index="{{index}}" data-value="1">
<text>是</text>
<view class="iconfont {{item.is_realname.value==1?'icon-gou':'icon-quan'}}"></view>
</view>
<view class="com-flex" bindtap="realCheck" data-index="{{index}}" data-value="0">
<text>否</text>
<view class="iconfont {{item.is_realname.value==0?'icon-gou':'icon-quan'}}"></view>
</view>
</view>
</view>
<view class="input-item">
<view class="input-item-in" style="align-items:flex-start">
<text>退款规则</text>
<view class="com-flex sl-box" style="opacity:0">
<image mode="widthFix" src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/supplier/sl.png"></image>
<text>示例</text>
</view>
<textarea auto-height value="{{item.refund_desc.value}}" disabled="{{item.audit && item.audit.value<2}}" data-name="refund_desc" bindinput="changeInfo" bindblur="blur" data-index="{{index}}" maxlength="-1" placeholder="请输入退款规则"></textarea>
</view>
<view class="error-tip" wx:if="{{item.refund_desc.error}}">请输入退款规则</view>
</view>
</view>
<view class="com-flex sku-bottom" bindtap="arrow" data-index="{{index}}">
<text>{{item.show?'收起':'展开'}}</text>
<image class="{{item.show?'':'rotate'}}" src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/supplier/arrowicon.png" mode="widthFix"></image>
</view>
</view>
<view class="com-flex add-sku-btn" bindtap="addSku">
<image src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/supplier/iconadd.png" mode="widthFix"></image>
<text>点击添加规格</text>
</view>
<view class="error-tip" style="text-align:center" wx:if="{{skuerror}}">请添加规格</view>
<view style="height:120rpx"></view>
<view class="btnall{{submitFlag?' ok':''}}" bindtap="submit">确定</view>
<view class="mask" wx:if="{{showFlagIndex!=-1}}">
<view class="mask-bg" bindtap="showFlag" data-index="-1"></view>
<view class="mask-content">
<view class="mask-title">{{flagText}}示例</view>
<view class="iconfont icon-close" bindtap="showFlag" data-index="-1"></view>
<text decode class="mask-info" wx:if="{{showFlagIndex==1}}">产品介绍
美育:不仅仅是教学生学会唱歌跳舞,学会画画,欣赏音乐,欣赏美术,首先要培养学生的“心灵美”,使青少年具有一颗美好的、善良的、感恩的、爱的心灵,懂得珍惜生命,珍惜美好的事物,懂得帮助他人,懂得爱父母,爱他人,爱祖国山河,爱天地万物。
金鸡湖美术馆:苏州工业园区金鸡湖畔苏州文化艺术中心二楼,共设4个展厅,以研究、策划、展示、收藏国内外优秀的当代艺术作品为主,并兼顾传统艺术研究,注重国际艺术交流和推广。“文脉苏州”:解析江南风土人情的组成要素及绘画表现,解读七个江南系列作品,包含苏州老行当、姑苏风情录、江南小巷、江南古镇、苏州园林、消失的乡土、姑苏人物篇等。
探秘电影放映室:数字放映机如何放映出电影?那个银幕背后的“神秘小黑屋”里究竟隐藏了什么?揭开“神秘小黑屋”之谜,聆听银幕背后的神秘故事,了解“小黑屋”魅力所在。
【行程明细】
08:45-09:00 集合 苏州文化艺术中心东门
09:00-09:30 开营仪式 文化艺术中心指定场地
09:30-10:30 参观IMAX影视剧 文化艺术中心放映厅
10:30-11:00 探秘电影放映室 文化艺术中心放映厅
11:00-12:00 参观金鸡湖美术馆 金鸡湖美术馆
12:00-13:00 午餐 文化艺术中心指定餐厅
13:00-13:30 乘船前往桃花岛 桃花岛
13:30-15:00 小小考古家DIY 桃花岛
15:00-16:00 萌宠互动:解锁动物密码 桃花岛
16:00-16:30 乘船离开桃花岛 桃花岛
16:30-17:00 结营仪式 家长接孩子 苏州文化艺术中心东门(以上时间为参考时间,具体以当日实际情况而定)
预订须知
【费用包含】
①教辅材料:行程中所需教辅材料、IMAX剧场票
②交通:金鸡湖码头往返游船;
③保险:旅行社责任险、旅游意外险
④午餐:荤素搭配,营养均衡
【费用不包含】
①请自行前往集合起讫地点
②除包含项外其他费用
③行程中无二次消费
【人群说明】
7-13岁在校学生独立参加
【使用说明】
①会于出行前一天17点前以电话或短信方式与您确认集合时间地点,如国家法定节假日可能会往后顺延至20点之前和您联系,请务必保证预留手机号畅通
②若出行前无短信、电话或其他方式和您确认出行相关信息,请拨打紧急电话:13338650833
【售卖时间】
【使用有效期】
【取消条款】
出行前 7日:家长无需任何理由提出,我们全额退款。
出行前3-7日:收取总团款30%的费用
出行前1-3日:收取总团款50%的费用
当天取消:家长自动放弃团款全损
【活动保障】
①户外活动有风险,我们针对独立参加活动的儿童师资配比约1:8,保证杜绝一切安全隐患做到100%安全,保障孩子户外活动安全权益。
②我们活动由中国人寿承保,旅行社责任保险+旅游意外险给孩子们双重保障。我们和每一位家长都签署国家旅游局标准合同,全方位保障参与者与家长的保险权益。
③而作为孩子单独参加,我们主办方作为唯一监护人,具有不可推卸的安全看护责任!对于师资配比、经营资质、保险保障绝对是放在首位。
④领队老师全程拍照分享,记录孩子们活动当天的全过程。独立参加孩子的家长足不出户实时了解掌握孩子们动态。
【温馨提示】
①集合地点:苏州文化艺术中心(东门,近停车场)
②集合时间:周六/周日上午08:45
③结束时间和地点:下午17:00苏州文化艺术中心(东门)
④需要徒步,请穿轻便运动鞋
⑤需要自行准备水杯,笔记本,笔,口罩
⑥不需要携带:零食,电子产品
⑦活动开始前24小时截图方式收集学生和家长绿码,家长的行程码,同学身份证信息
售价 388元/人
结算价
</text>
<text decode class="mask-info" wx:elif="{{showFlagIndex==2}}">【使用说明】
①会于出行前一天17点前以电话或短信方式与您确认集合时间地点,如国家法定节假日可能会往后顺延至20点之前和您联系,请务必保证预留手机号畅通
②若出行前无短信、电话或其他方式和您确认出行相关信息,请拨打紧急电话:13338650833
</text>
<text decode class="mask-info" wx:elif="{{showFlagIndex==3}}">【费用包含】
①教辅材料:行程中所需教辅材料、IMAX剧场票
②交通:金鸡湖码头往返游船;
③保险:旅行社责任险、旅游意外险
④午餐:荤素搭配,营养均衡
【费用不包含】
①请自行前往集合起讫地点
②除包含项外其他费用
③行程中无二次消费
</text>
<text decode class="mask-info" wx:elif="{{showFlagIndex==4}}">【人群说明】
7-13岁在校学生独立参加
【售卖时间】
2022.1.1-2022.3.9
【使用有效期】
2022.1.10、2022.2.10\2022.3.10
【取消条款】
出行前 7日:家长无需任何理由提出,我们全额退款。
出行前3-7日收取总团款30%的费用
出行前1-3日:收取总团款50%的费用
当天取消:家长自动放弃团款全损
【活动保障】
①户外活动有风险,我们针对独立参加活动的儿童师资配比约1:8,保证杜绝一切安全隐患做到100%安全,保障孩子户外活动安全权益。
②我们活动由中国人寿承保,旅行社责任保险+旅游意外险给孩子们双重保障。我们和每一位家长都签署国家旅游局标准合同,全方位保障参与者与家长的保险权益。
③而作为孩子单独参加,我们主办方作为唯一监护人,具有不可推卸的安全看护责任!对于师资配比、经营资质、保险保障绝对是放在首位。
④领队老师全程拍照分享,记录孩子们活动当天的全过程。独立参加孩子的家长足不出户实时了解掌握孩子们动态。
【温馨提示】
① 本产品需提前一天22点前预定,以便本社进行出团准备工作
② 集合地点:苏州文化艺术中心(东门,近停车场)
③ 集合时间:周六/周日上午08:45
④ 结束时间和地点:下午17:00苏州文化艺术中心(东门)
⑤ 需要徒步,请穿轻便运动鞋
⑥ 需要自行准备水杯,笔记本,笔,口罩
⑦ 不需要携带:零食,电子产品
⑧活动开始前24小时截图方式收集学生和家长绿码,家长的行程码,同学身份证信息
售价 388元/人
结算价
</text>
</view>
</view>

209
pages/supplier/good/index.wxss

@ -0,0 +1,209 @@
/* pages/supplier/good/index.wxss */
page {
background: #f2f2f2;
}
.input-item {
padding: 10rpx 0;
margin: 0 20rpx;
border-bottom: 1px solid #D8D8D8;
}
.input-item-in {
display: flex;
justify-content: space-between;
align-items: center;
line-height: 60rpx;
padding: 20rpx 0;
}
.input-item text {
color: #333333;
font-size: 31rpx;
flex-shrink: 0;
}
.input-item input,.input-item textarea {
display: block;
width: 400rpx;
text-align: right;
font-size: 30rpx;
flex: 1;
margin-left: 20rpx;
}
.input-item .btn {
width: 173rpx;
height: 60rpx;
background: linear-gradient(180deg, #749DFC, #4375E7);
border-radius: 30rpx;
color: #fff;
font-size: 31rpx;
text-align: center;
}
.btnall {
position: fixed;
left: 20rpx;
right: 20rpx;
bottom: 30rpx;
line-height: 80rpx;
background: #BDBFBF;
border-radius: 40rpx;
text-align: center;
color: #fff;
text-align: center;
z-index: 11;
}
.btnall.ok {
background: #4375E7;
}
.error-tip {
text-align: right;
color: #FF5555;
font-size: 24rpx;
}
.add-sku-btn {
width: 280rpx;
height: 67rpx;
background: linear-gradient(180deg, #749DFC, #4375E7);
border-radius: 33rpx;
color: #fff;
font-size: 31rpx;
justify-content: center;
margin: 40rpx auto;
}
.add-sku-btn image {
width: 40rpx;
display: block;
margin-right: 12rpx;
}
.sku-box {
margin-top: 13rpx;
background: white;
}
.sku-top {
margin: 0 20rpx;
border-bottom: 1px solid #D8D8D8;
height: 80rpx;
color: #4375E7;
font-size: 25rpx;
}
.sku-top text {
font-size: 31rpx;
}
.sku-top image {
width: 27rpx;
display: block;
margin-right: 5rpx;
}
.input-item-in .img-box {
position: relative;
margin-left: 40rpx;
}
.input-item-in image {
width: 133rpx;
height: 133rpx;
display: block;
flex-shrink: 0;
border-radius: 13rpx;
}
.input-item-in .icon-close {
width: 40rpx;
line-height: 40rpx;
background: #6490F5;
border-radius: 50%;
text-align: center;
color: #fff;
position: absolute;
top: -10rpx;
right: -10rpx;
z-index: 1;
}
.sl-box text {
color: #4375E7;
font-size: 24rpx;
}
.sl-box image {
width: 20rpx;
display: block;
margin-left: 20rpx;
margin-right: 6rpx;
border-radius: 0;
}
.input-item-in textarea {
font-size: 30rpx;
line-height: 30rpx;
min-height: 30rpx;
padding: 15rpx 0;
width: 397rpx;
}
.icon-quan,.icon-gou {
color: #4D7CE8;
margin-left: 15rpx;
margin-right: 40rpx;
font-size: 40rpx;
}
.sku-bottom {
height: 67rpx;
justify-content: center;
font-size: 25rpx;
}
.sku-bottom image {
width: 27rpx;
display: block;
margin-left: 15rpx;
}
.sku-bottom image.rotate {
transform: rotate(180deg);
}
.sku-status {
border: 1px solid;
box-sizing: border-box;
height: 40rpx;
border-radius: 20rpx;
font-size: 25rpx;
overflow: hidden;
margin-left: 70rpx;
}
.sku-status-box {
background: white;
border-radius: 19rpx;
line-height: 38rpx;
width: 140rpx;
text-align: center;
}
.sku-status-reject {
padding: 0 10rpx;
color: #fff;
}
.sku-status2 {
color: #F95440;
background: #F95440;
}
.sku-status1 {
color: #68CB59;
}
.mask-title {
text-align: center;
color: #4375E7;
font-size: 36rpx;
font-weight: bold;
line-height: 116rpx;
}
.icon-close {
width: 40rpx;
line-height: 40rpx;
background: #6490F5;
position: absolute;
right: 13rpx;
top: 30rpx;
color: #fff;
text-align: center;
border-radius: 50%;
}
.mask-info {
display: block;
padding: 0 20rpx;
font-size: 28rpx;
line-height: 40rpx;
padding-bottom: 30rpx;
}
.mask-content {
max-height: 80%;
overflow-y: auto;
}

105
pages/supplier/index.js

@ -0,0 +1,105 @@
// pages/supplier/index.js
import https from "../../utils/https"
Page({
/**
* 页面的初始数据
*/
data: {
passFlag:null,
supplier_text:['商户信息审核中...','商户审核通过','商户审核失败'],
goods_text:['商品信息审核中...','商品审核通过','商品审核失败'],
sku:[],
audit:0
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
supplierpage(){
wx.navigateTo({
url: 'apply/index',
})
},
gotoGood(){
wx.navigateTo({
url: 'good/index',
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
https.user_post('supplierapply/get_supplier_apply',{}).then(res=>{
this.setData({
passFlag:res.data
})
https.user_post('supplierapply/add_sku',{},'GET').then(res=>{
this.setData({
sku:res.data
})
if(res.data.length>0){
let audit=0;
if(res.data.findIndex(item=>item.audit==0)!=-1){
audit=0;
}
else if(res.data.findIndex(item=>item.audit==2)!=-1){
audit=2;
}
else {
audit=1;
}
this.setData({
audit:audit
})
}
})
})
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})

3
pages/supplier/index.json

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

41
pages/supplier/index.wxml

@ -0,0 +1,41 @@
<!--pages/supplier/index.wxml-->
<view class="content">
<image class="topimg" src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/supplier/indexbg1.png" mode="widthFix"></image>
<view class="btn" bindtap="supplierpage" wx:if="{{passFlag===null}}">
<image src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/supplier/user.png" mode="widthFix"></image>
<view>点击填写商户信息</view>
</view>
<view class="btn line-btn btnbg{{passFlag.audit}}" bindtap="supplierpage" wx:else="{{passFlag}}">
<view class="com-flex">
<image src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/supplier/icon{{passFlag.audit}}.png" mode="widthFix"></image>
<view>{{supplier_text[passFlag.audit]}}</view>
</view>
<view class="right-btn">
<view>点击</view>
<view>查看</view>
</view>
</view>
<view class="btn disable" wx:if="{{passFlag===null || passFlag && passFlag.audit==0 || passFlag && passFlag.audit==2}}">
<image src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/supplier/lock.png" mode="widthFix"></image>
<view>点击填写商品信息</view>
</view>
<view class="btn" wx:elif="{{passFlag && passFlag.audit==1 && sku.length==0}}" bindtap="gotoGood">
<image src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/supplier/lock.png" mode="widthFix"></image>
<view>点击填写商品信息</view>
</view>
<view class="btn line-btn btnbg{{audit}}" bindtap="supplierpage" wx:else bindtap="gotoGood">
<view class="com-flex">
<image src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/supplier/icon{{audit}}.png" mode="widthFix"></image>
<view>{{goods_text[audit]}}</view>
</view>
<view class="right-btn" wx:if="{{audit==2}}">
<view>重新</view>
<view>填写</view>
</view>
<view class="right-btn" wx:else>
<view>点击</view>
<view>查看</view>
</view>
</view>
<image src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/supplier/indexbg2.png" class="bottomimg" mode="widthFix"></image>
</view>

74
pages/supplier/index.wxss

@ -0,0 +1,74 @@
/* pages/supplier/index.wxss */
.topimg {
display: block;
width: 100%;
mask-border: 210rpx;
}
.content {
display: flex;
position: absolute;
left: 0;
top: 0;
right: 0;
bottom: 0;
flex-direction: column;
justify-content: center;
align-items: center;
}
.btn {
display: flex;
width: 613rpx;
height: 107rpx;
color: #fff;
font-size: 36rpx;
font-weight: bold;
background: linear-gradient(0deg, #4375E7, #759EFD);
border-radius: 53rpx;
justify-content: center;
margin-top: 94rpx;
align-items: center;
box-sizing: border-box;
}
.line-btn .com-flex {
height: 100rpx;
margin: 0 2px;
width: 520rpx;
background: white;
border-radius: 50rpx;
color: #4375E7;
justify-content: center;
}
.btnbg2 .com-flex {
color: #F95440;
}
.btnbg2 {
background: #F95440;
}
.btnbg1 .com-flex {
color: #68CB59;
}
.btnbg1 {
background: #68CB59;
}
.right-btn {
flex: 1;
font-size: 25rpx;
color: #fff;
margin-left: 10rpx;
}
.btn image {
width: 40rpx;
margin-right: 26rpx;
display: block;
}
.btn.disable {
background: #BDBFBF;
}
.bottomimg {
display: block;
position: absolute;
right: 0;
bottom: 0;
width: 100%;
z-index: -1;
}

5
pages/user/user.wxml

@ -45,6 +45,7 @@
<navigator url="cartlist/list" class="user-box-line">
购物车
</navigator>
<navigator url="order/team/list" class="user-box-line">
团体订单
</navigator>
@ -60,6 +61,9 @@
<navigator url="likes/index" class="user-box-line">
我的收藏
</navigator>
<navigator url="../supplier/index" class="user-box-line">
商户审核
</navigator>
<!-- <navigator url="/pages/group/mine/index" class="user-box-line">
我的团购
</navigator>
@ -72,7 +76,6 @@
<navigator url="verify/index" class="user-box-line" wx:if="{{info && info.name_verification=='UNCERTFIED'}}">
实名认证
</navigator>
</view>
<view class="user-box" style="margin-bottom:0">
<navigator url="linkman/index" class="user-box-line">

10
project.private.config.json

@ -13,14 +13,14 @@
"miniprogram": {
"list": [
{
"name": "pages/pbService/web/index",
"pathName": "pages/pbService/web/index",
"query": "authCode=2c290d21383ccd3350747bba95f306f0",
"name": "pages/supplier/good/index",
"pathName": "pages/supplier/good/index",
"query": "id=2825",
"scene": null
},
{
"name": "pages/kj/index",
"pathName": "pages/kj/index",
"name": "pages/supplier/index",
"pathName": "pages/supplier/index",
"query": "id=59532108251510343335",
"scene": null
},

2
utils/filter.wxs

@ -10,6 +10,8 @@ var formateRichText = function(str){
str = str.replace(reg, '<span style="width: 8rpx;display: inline-block;"></span>')
reg = getRegExp("section","g");
str = str.replace(reg, 'div');
reg = getRegExp("↵","g");
str = str.replace(reg, '<br />');
return str;
}
var gotoUrl = function(item){

16
utils/https.js

@ -102,8 +102,7 @@ function _post(url,data={}) {
})
}
function user_post(url,data={}){
console.log(wx.getStorageSync('authCode'))
function user_post(url,data={},type){
if(wx.getStorageSync('authCode')){
// 如果有授权码的话 用授权码去获取下用户信息
return new Promise((resolved,rejected)=>{
@ -116,14 +115,14 @@ function user_post(url,data={}){
wx.setStorageSync('jstrip_token', res.data.token)
wx.setStorageSync('jstrip_userInfo', res.data)
}
user_post_new(url,data).then(res=>{
user_post_new(url,data,type).then(res=>{
resolved(res)
}).catch(err=>{
rejected(err)
})
}).catch(err=>{
wx.removeStorageSync('authCode')
user_post_new(url,data).then(res=>{
user_post_new(url,data,type).then(res=>{
resolved(res)
}).catch(err=>{
rejected(err)
@ -133,10 +132,10 @@ function user_post(url,data={}){
}
else {
return user_post_new(url,data)
return user_post_new(url,data,type)
}
}
function user_post_new(url,data={}){
function user_post_new(url,data={},type){
var token = wx.getStorageSync("jstrip_token"),userId = wx.getStorageSync("jstrip_userid");
//为了用户体验,加一个loading效果
wx.showLoading({ title: '加载中', mask: true });
@ -170,7 +169,7 @@ function user_post_new(url,data={}){
const obj = {
url,
data,
method: 'POST',
method: type?type:'POST',
header: header,
success: (res) => {
wx.hideLoading();
@ -349,5 +348,6 @@ export default {
_get,
user_post,
set_logininfo,
checkLogin
checkLogin,
baseUrl
}

9
utils/util.js

@ -29,6 +29,14 @@ const isTel = tel => {
return true;
}
}
const isMail = email => {
if (!(/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/.test(email))) {
return false;
}
else {
return true;
}
}
const dateToText = (date) => {
const year = date.getFullYear()
const month = date.getMonth() + 1
@ -354,6 +362,7 @@ module.exports = {
formatTime: formatTime,
formatNumber: formatNumber,
isTel: isTel,
isMail:isMail,
setTitleBarColor: setTitleBarColor,
base64src: base64src,
back: back,

Loading…
Cancel
Save