first commit

This commit is contained in:
SelfRidicule 2024-02-21 17:43:11 +08:00
commit bc247b2a10
391 changed files with 19643 additions and 0 deletions

281
miniprogram/app.js Normal file
View File

@ -0,0 +1,281 @@
App({
APPID: 'wx22f0f66d57ce48f7',
// 本地测试时不用加/api
// DOMAIN_NAME: 'http://localhost:9227', //接口域名
// IMG_NAME: 'http://localhost:9227',
DOMAIN_NAME: 'https://demo.metasoft.vip/api',
IMG_NAME: 'https://demo.metasoft.vip/api',
globals: {
refreshMyPages: false,
homedata: {},
editPro: {
projectId: 0, //项目ID
isedit: 0, //是否编辑
json: {} //项目编辑后的详细数据
},
trainBeginCity: ''
},
onLaunch(res) {
var that = this
},
///////////////////////////////////////////////////////////////////////////
//获取当前用户的openid
Getopenid: function () {
var token = wx.getStorageSync('token');
return token;
},
/**
* 对象转URL
*/
urlEncode(data) {
var _result = [];
for (var key in data) {
var value = data[key];
if (value.constructor == Array) {
value.forEach(_value => {
_result.push(key + "=" + _value);
});
} else {
_result.push(key + '=' + value);
}
}
return _result.join('&');
},
/**
* 显示失败提示框
*/
showError(msg, callback) {
wx.showModal({
title: '友情提示',
content: msg,
showCancel: false,
success(res) {
// callback && (setTimeout(() => {
// callback();
// }, 1500));
callback && callback();
}
});
},
/**
* 显示成功提示框
*/
showSuccess(msg, callback) {
wx.showToast({
title: msg,
icon: 'success',
success() {
callback && (setTimeout(() => {
callback();
}, 1500));
}
});
},
// 根据出生日期计算年龄周岁 传参格式为1996-06-08
getAge: function (strBirthday) {
var returnAge = '';
var mouthAge = '';
var strBirthdayArr = strBirthday.split("-");
var birthYear = strBirthdayArr[0];
var birthMonth = strBirthdayArr[1];
var birthDay = strBirthdayArr[2];
var d = new Date();
var nowYear = d.getFullYear();
var nowMonth = d.getMonth() + 1;
var nowDay = d.getDate();
if (nowYear == birthYear) {
// returnAge = 0; //同年 则为0岁
var monthDiff = nowMonth - birthMonth; //月之差
if (monthDiff < 0) {} else {
mouthAge = monthDiff + '个月';
}
} else {
var ageDiff = nowYear - birthYear; //年之差
if (ageDiff > 0) {
if (nowMonth == birthMonth) {
var dayDiff = nowDay - birthDay; //日之差
if (dayDiff < 0) {
returnAge = ageDiff - 1 + '岁';
} else {
returnAge = ageDiff + '岁';
}
} else {
var monthDiff = nowMonth - birthMonth; //月之差
if (monthDiff < 0) {
returnAge = ageDiff - 1 + '岁';
} else {
mouthAge = monthDiff + '个月';
returnAge = ageDiff + '岁';
}
}
} else {
returnAge = -1; //返回-1 表示出生日期输入错误 晚于今天
}
}
return returnAge + mouthAge; //返回周岁年龄+月份
},
Upload: function (tempFilePaths, call) {
wx.showLoading({
mask: true,
title: '正在上传'
});
var that = this
wx.uploadFile({
url: that.DOMAIN_NAME + '/dfs/upload',
header: {
'Authorization': 'Bearer ' + that.Getopenid()
},
filePath: tempFilePaths,
name: 'file',
success(res) {
var deta = JSON.parse(res.data)
if (call) call(deta);
if (deta.code == 401) {
wx.hideLoading()
wx.showModal({
confirmText: '好的',
content: deta.msg || '身份已过期,需重登录',
success: res => {
wx.reLaunch({
url: '/pages/login/login',
})
}
});
} else if (deta.code != 0) {
wx.hideLoading()
wx.showModal({
confirmText: '好的',
content: '服务器开小差去了,请重试',
showCancel: false
})
} else if (deta.code == 0) {
wx.hideLoading()
}
},
fail: function (ret) {
wx.hideLoading()
wx.showModal({
confirmText: '再试一次',
content: '无法连接网络',
showCancel: false,
success: function () {
if (res.confirm) {
that.Upload(tempFilePaths, call);
} else if (res.cancel) {
console.log('用户点击取消')
}
}
})
}
})
},
getParkid() {
var token = wx.getStorageSync('token');
return token
},
getlogin() {
wx.showModal({
confirmText: '好的',
content: '请先登录后再点击查看',
success: res => {
wx.reLaunch({
url: '/pages/login/login',
})
}
})
},
//统一请求封装
//mandate 接口值
//data 传值已自动转换为JSON
//call 请求成功后回调的方法
AjaxRequest: function (methods, header, url, data, call) {
var token = wx.getStorageSync('token');
if (wx.getStorageSync('parkId')) {
data.parkId = wx.getStorageSync('parkId')
}
wx.showLoading({
mask: true,
title: '正在加载'
})
var that = this
//发送请求
wx.request({
header: header,
method: methods,
url: that.DOMAIN_NAME + url,
data: data,
success: function (ret) {
if (call) call(ret.data);
if (ret.data.code == 402 || ret.data.code == 401) {
wx.hideLoading()
wx.showModal({
confirmText: '确认',
content: '身份已过期,需重登录',
success(res) {
wx.removeStorageSync('MemberInfo')
wx.removeStorageSync('token')
if (res.confirm) {
wx.reLaunch({
url: '/pages/login/login',
})
}
}
})
} else if (ret.data.code != 0) {
wx.hideLoading()
wx.showModal({
confirmText: '好的',
content: ret.data.msg || '服务器开小差去了,请重试',
showCancel: false,
success(res) {
if (res.confirm) {
if (!wx.getStorageSync('parkId')) {
if (ret.data.msg == '请选择园区!!') {
wx.reLaunch({
url: '../index/parkList/parkList'
})
}
}
}
}
})
} else if (ret.data.code == 0) {
wx.hideLoading()
}
},
fail: function (ret) {
wx.hideLoading();
wx.showModal({
confirmText: '再试一次',
content: '无法连接网络',
success(res) {
if (res.confirm) {
that.AjaxRequest(methods, header, url, data, call);
} else if (res.cancel) {
console.log('用户点击取消')
}
}
})
}
})
},
ToWebURL(url){
wx.navigateTo({
url: pages/outer/outer,//要跳转的页面需要新建立一个page页面
success: () => {
}
})
},
})

96
miniprogram/app.json Normal file
View File

@ -0,0 +1,96 @@
{
"pages": [
"pages/index/index",
"pages/login/wxlogin/wxlogin",
"pages/login/login",
"pages/my/my",
"pages/community/community",
"pages/news/news",
"pages/index/detail/detail",
"pages/community/eventDetails/eventDetails",
"pages/enterpriseServices/enterpriseServices",
"pages/parkRepair/parkRepair",
"pages/enterpriseServices/serviceList/serviceList",
"pages/enterpriseServices/serviceDetail/serviceDetail",
"pages/community/registration/registration",
"pages/enterpriseServices/serviceApply/serviceApply",
"pages/parkRepair/repairDetail/repairDetail",
"pages/parkRepair/repairInApply/repairInApply",
"pages/enterpriseSelect/enterpriseSelect",
"pages/myActivities/myActivities",
"pages/parkRepair/evaluate/evaluate",
"pages/notice/notice",
"pages/notice/detail/detail",
"pages/complaint/complaint",
"pages/complaint/newComplaint/newComplaint",
"pages/my/personalData/personalData",
"pages/my/cropper/cropper",
"pages/party/party",
"pages/party/detail/detail",
"pages/my/accountSetting/accountSetting",
"pages/my/changePassword/changePassword",
"pages/my/retrievePassword/retrievePassword",
"pages/my/companyInformation/companyInformation",
"pages/my/editCompanyProfile/editCompanyProfile",
"pages/my/order/order",
"pages/my/order/detail/detail",
"pages/my/order/applyRefund/applyRefund",
"pages/index/office/office",
"pages/index/office/detail/detail",
"pages/index/office/apply/apply",
"pages/index/parkList/parkList",
"pages/enterpriseServices/myServiceList/myServiceList",
"pages/applyType/settledIn/settledIn",
"pages/applyType/applyType",
"pages/applyType/settledInApproval/settledInApproval",
"pages/applyType/moveInApply/moveInApply",
"pages/my/serviceApply/serviceApply",
"pages/complaint/complaintDetail/complaintDetail",
"pages/outer/outer"
],
"window": {
"backgroundTextStyle": "light",
"navigationBarBackgroundColor": "#fff",
"navigationBarTitleText": "Weixin",
"navigationBarTextStyle": "black"
},
"tabBar": {
"backgroundColor": "#ffffff",
"borderStyle": "black",
"selectedColor": "#5C8EFF",
"color": "#333333",
"list": [
{
"pagePath": "pages/index/index",
"iconPath": "/images/icon/shouye-3861.png",
"selectedIconPath": "/images/icon/shouye-386.png",
"text": "首页"
},
{
"pagePath": "pages/enterpriseServices/enterpriseServices",
"iconPath": "/images/icon/fuwu_11.png",
"selectedIconPath": "/images/icon/fuwu_1.png",
"text": "服务"
},
{
"pagePath": "pages/parkRepair/parkRepair",
"iconPath": "/images/icon/wodebaoxiu1.png",
"selectedIconPath": "/images/icon/wodebaoxiu.png",
"text": "维修"
},
{
"pagePath": "pages/my/my",
"iconPath": "/images/icon/wode1.png",
"selectedIconPath": "/images/icon/wode.png",
"text": "我的"
}
]
},
"style": "v2",
"sitemapLocation": "sitemap.json",
"permission": {
"scope.userLocation": {
"desc": "为便于为您定位附近园区"
}
}
}

347
miniprogram/app.wxss Normal file
View File

@ -0,0 +1,347 @@
@import "/utils/common.wxss";
page {
width: 100%;
height: 100%;
/* overflow: hidden; */
font-size: 24rpx;
/* color: #F3F3F3; */
background-color: #F5F5F5;
}
.flow-checkout-header {
padding: 28rpx 0;
background: #fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANYAAAANCAYAAADVGpDCAAAAGXRFW…GxrGBUn2PZ4lyoTdIsST0FQj0UDSLUak6ot3gcBLVY3wQYAJoVXxmNERajAAAAAElFTkSuQmCC) bottom left repeat-x;
background-size: 120rpx auto;
position: relative;
}
.flow-header-left {
flex: 14;
}
.flow-fixed-footer {
position: fixed;
bottom: 0;
width: 100%;
background: #fff;
border-top: 1px solid #eee;
z-index: 11;
}
.flow-shopList {
padding: 20rpx 0;
}
.flow-shopList .flow-list-left {
flex: 2;
}
.flow-btn {
background-color: #ff495e;
color: #fff;
text-align: center;
line-height: 46px;
display: block;
}
.flow-num-box {
font-size: 30rpx;
color: #777;
padding: 15rpx 12px;
text-align: right;
}
.flow-checkout-header .flow-checkout-address {
font-size: 26rpx;
color: #777;
margin-top: 6rpx;
}
.goods-detail-box {
padding: 0;
min-height: 150px;
}
.flow-shopList .flow-list-right .small {
float: right;
font-size: 26rpx;
color: #777;
}
.flow-shopList .flow-list-right .flow-cont {
font-size: 30rpx;
color: #ff495e;
}
.flow-shopList .flow-list-right .flow-list-cont {
padding-top: 10rpx;
}
.flow-shopList .flow-list-left {
flex: 2;
}
.flow-shopList .flow-list-right {
flex: 4;
}
.flow-shopList .flow-list-left image {
width: 200rpx;
height: 200rpx;
border: 1rpx solid #eee;
background: #fff;
}
.flow-list custom-li, .addres-list custom-li {
margin-top: 25rpx;
display: block;
}
.flow-list custom-li:first-child, .addres-list custom-li:first-child {
margin-top: 0;
}
.index-cont-search {
width: 100%;
font-size: 28rpx;
position: relative;
background: #f1f1f1;
}
.selectNumber {
height: 34px;
flex-direction: row;
border: 1rpx solid #eee;
border-radius: 10rpx;
display: inline-block;
}
.selectNumber .default-active {
background: #f7f7f7 !important;
color: #ddd !important;
}
.selectNumber .default {
width: 34px;
height: 34px;
float: left;
line-height: 32px;
padding: 0;
background: #fff;
color: #444;
font-size: 48rpx;
}
.selectNumber input {
float: left;
width: 50px;
height: 34px;
line-height: 34px;
border-right: 1rpx solid #eee;
border-left: 1rpx solid #eee;
text-align: center;
font-size: 28rpx;
color: #444;
}
.order-bt {
width: 50%;
background-color: #ff495e;
color: #fff;
text-align: center;
line-height: 46px;
}
.profile-btn button {
background: #ff495e;
color: white;
margin-bottom: 20rpx;
}
.yoshop-notcont {
margin: 130rpx 100rpx;
}
.yoshop-notcont .iconfont {
font-size: 150rpx;
color: #ccc;
text-align: center;
display: block;
margin-bottom: 24rpx;
}
.yoshop-notcont .cont {
display: block;
text-align: center;
font-size: 30rpx;
color: #999;
margin-top: 20rpx;
}
.footer-fixed {
position: fixed;
display: flex;
bottom: 0px;
left: 0px;
right: 0px;
height: 46px;
z-index: 18;
box-shadow: 1px 5px 15px rgba(50, 50, 50, 0.3);
background: #fff;
}
.order-bt {
background-color: #ff495e;
color: #fff;
text-align: center;
line-height: 46px;
}
.container {
height: 100%;
align-items: center;
justify-content: space-between;
box-sizing: border-box;
font-family: PingFang-Medium,
PingFangSC-Regular,
Heiti,
Heiti SC,
DroidSans,
DroidSansFallback,
"Microsoft YaHei",
sans-serif;
-webkit-font-smoothing: antialiased;
}
.bold {
font-weight: 600;
}
.next {
width: 100% !important;
height: 100rpx !important;
font-size: 28rpx;
color: white;
text-align: center;
line-height: 100rpx !important;
background: #4C84FF;
/* position: absolute !important;
bottom: 30rpx;
left: 50% !important; */
/* margin-left: -290rpx !important; */
padding: 0 !important;
border-radius: 50rpx !important;
z-index: 5;
}
.floL {
float: left;
}
.floR {
float: right;
}
.fontW {
font-weight: 600;
}
.bshaw {
width: 98%;
margin-left: 1%;
padding: 30rpx 30rpx 36rpx 22rpx;
background: rgba(255, 255, 255, 1);
box-shadow: 0px 0px 13rpx 1rpx rgba(233, 236, 244, 1);
border-radius: 4rpx;
margin-top: 50rpx;
box-sizing: border-box;
}
/*隐藏滚动条*/
::-webkit-scrollbar {
width: 0;
height: 0;
color: transparent;
}
.da {
display: inline-block;
color: white;
background: #4C84FF;
padding: 0 50rpx;
height: 62rpx;
border-radius: 31rpx;
text-align: center;
line-height: 62rpx;
margin-right: 24rpx;
margin-bottom: 24rpx;
}
.da1 {
display: inline-block;
color: black;
background: #F2F2F2;
padding: 0 50rpx;
height: 62rpx;
border-radius: 31rpx;
text-align: center;
line-height: 62rpx;
margin-right: 24rpx;
margin-bottom: 24rpx;
}
.titleC {
font-size: 13pt;
font-weight: 600;
margin-bottom: 10rpx;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.detailTextC {
color: #A5A5A5;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.textcolor {
color: #A5A5A5;
}
.iconfont {
font-size: 14pt;
color: #C11D24;
}
.iconfonts {
font-size: 14pt;
}
.btnColor {
background-color: #C11D24;
color: white;
}
image {
width: 100%;
}
.paddingPercent_4 {
padding: 4%;
}
.borderBottom {
border-bottom: 1rpx solid #EEEEEE;
}
.borderTop {
border-top: 1rpx solid #E5E5E5;
}
.flex {
display: flex;
}

File diff suppressed because one or more lines are too long

BIN
miniprogram/images/1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

BIN
miniprogram/images/add.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 616 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 288 KiB

BIN
miniprogram/images/full.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

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: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

BIN
miniprogram/images/red.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -0,0 +1,57 @@
// miniprogram/pages/applyType/applyType.js
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
switch (options.name) {
case "项目入孵":
this.setData({
title: options.name,
url: '/pages/applyType/settledIn/settledIn',
image: '/images/apply01.png',
content: '请提前准备好项目入孵申请所需资料,需准备拟注册公司、项目简介、产品简介等相关信息,有商业计划书的需提供商业计划书。'
})
break
case "企业入驻":
this.setData({
title: options.name,
url: '/pages/applyType/settledInApproval/settledInApproval',
image: '/images/apply03.png',
content: '请提前准备好进场申请所需资料,需准备法人身份证、营业执照副本、企业简介,并将相关材料上传,有商业计划书的需提交商业计划书'
})
break
case "厂房申请":
this.setData({
title: options.name,
url: '/pages/applyType/moveInApply/moveInApply',
image: '/images/apply02.png',
content: '申请厂房请提供公司发展规划、近两年的企业财务状况、员工人数及结构;近两年获得各级政府的项目情况;目前拥有产品/技术情况;近两年知识产权情况及所获认证及荣誉情况等相关资料 (这些是备注在注册/厂房申请“申请理由”处)建议以“上传附件”形式'
})
}
wx.setNavigationBarTitle({
title: options.name,
})
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
navApplyForm() {
wx.navigateTo({
url: this.data.url,
})
}
})

View File

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

View File

@ -0,0 +1,12 @@
<view>
<view style="background: white">
<image src="{{image}}" mode="widthFix" style="width: 100%"></image>
<view style="padding: 6% 4% 8% 4%;line-height: 40rpx;box-sizing: border-box">
<view style="font-size: 14pt;margin-bottom: 14rpx;">{{title}}注意事项</view>
<view style="font-size: 10pt">{{content}}</view>
</view>
</view>
<view class="nextBox">
<view class="next" bindtap="navApplyForm">我要申请</view>
</view>
</view>

View File

@ -0,0 +1,10 @@
.nextBox{
width: 100%;
position: fixed;
bottom: 8%;
}
.next{
width: 90% !important;
margin: auto;
font-size: 11pt;
}

View File

@ -0,0 +1,287 @@
var app = getApp();
var util = require("../../../utils/util.js");
Page({
/**
* 页面的初始数据
*/
data: {
sex: ['否', '是'],
sexindex: 1,
date: '请选择期望入驻时间',
type: 1,
addressList: ['公司迁入', '新设立公司', '子公司'],
addressIndex: 0,
typeList: ['注册地址迁入', '新公司注册'],
typeIndex: 0,
applyMoveInFileList: [],
list: {
promise: '申请人承诺自《场地服务合同》变更、解除或终止之日起10日内办结申请人及上述拟成立企业等关联关系单位的工商地址变更、迁出或注销手续。否则因此产生的责任和后果由我方承担且贵方有权追究我方违约责任。'
}
},
uploFile() {
var that = this;
if (that.data.applyMoveInFileList.length >= 9) return
wx.showActionSheet({
itemList: ['上传图片', '打开微信聊天会话选择文件'],
success(res) {
if (res.tapIndex == 0) {
wx.chooseImage({
count: 1, //能选择文件的数量
success(res) {
that.upload(res.tempFiles)
}
})
} else {
wx.chooseMessageFile({
count: 1, //能选择文件的数量
type: 'file',
success(res) {
that.upload(res.tempFiles)
}
})
}
},
fail(res) {
console.log(res.errMsg)
}
})
},
upload(data) {
var that = this
var applyMoveInFileList = that.data.applyMoveInFileList
wx.showLoading({
title: '上传中',
})
wx.uploadFile({
url: app.DOMAIN_NAME + '/dfs/upload?originalFilename=' + data[0].name,
header: {
'Authorization': 'Bearer ' + app.Getopenid()
},
filePath: data[0].path,
name: 'file',
success(res) {
var deta = JSON.parse(res.data)
if (deta.code == 401) {
wx.hideLoading()
wx.showModal({
confirmText: '好的',
content: deta.msg || '身份已过期,需重登录',
success: res => {
wx.reLaunch({
url: '/pages/login/login',
})
}
});
} else if (deta.code != 0) {
wx.hideLoading()
wx.showModal({
confirmText: '好的',
content: deta.msg || '服务器开小差去了,请重试',
showCancel: false
});
} else if (deta.code == 0) {
var first = deta.fileName.lastIndexOf("."); //取到文件名开始到最后一个点的长度
var namelength = deta.fileName.length; //取到文件名长度
var filesuffix = deta.fileName.substring(first + 1, namelength); //截取获得后缀名
var type = ''
switch (filesuffix) {
case 'jpg' || 'png':
type = 'jpg'
break;
case 'xls' || 'xlsx':
type = 'xlsx'
break;
case 'doc' || 'docx' || 'dotx':
type = 'word'
break;
case 'ppt' || 'pptx':
type = 'ppt'
break;
default:
type = '未知文件'
break;
}
applyMoveInFileList.push({
fileName: deta.originalFilename != "undefined" ? deta.originalFilename : deta.fileName,
filePath: deta.fileName,
fileSize: (data[0].size * 0.001).toFixed(2) + 'KB',
type
})
that.setData({
applyMoveInFileList
})
wx.hideLoading()
}
}
})
},
delFile(e) {
var index = e.currentTarget.dataset.index,
applyMoveInFileList = this.data.applyMoveInFileList
applyMoveInFileList.splice(index, 1)
this.setData({
applyMoveInFileList
})
},
// 与申请人关系
addressRadio(e) {
this.setData({
addressIndex: e.currentTarget.dataset.idx
})
},
// 申请业务
typeRadio: function (e) {
this.setData({
typeIndex: e.currentTarget.dataset.idx
})
},
// 期望入驻开始时间选择
startDateChange(e) {
this.setData({
startDate: e.detail.value
})
},
// 期望入驻结束时间选择
endDateChange(e) {
this.setData({
endDate: e.detail.value
})
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(e) {
var time = util.formatDate(new Date())
this.setData({
startDate: time,
endDate: time
})
if (e.id) {
this.setData({
id: e.id
})
this.getList(e.id)
}
},
getList(e) {
var that = this
app.AjaxRequest('get', {
'content-type': 'application/json',
'Authorization': 'Bearer ' + app.Getopenid()
}, '/applyMoveIn/get/' + e, {}, function (res) {
if (res.code == 0) {
var applyMoveInFileList = res.data.applyMoveInFileList
applyMoveInFileList.forEach(item => {
var first = item.fileName.lastIndexOf("."); //取到文件名开始到最后一个点的长度
var namelength = item.fileName.length; //取到文件名长度
var filesuffix = item.fileName.substring(first + 1, namelength); //截取获得后缀名
switch (filesuffix) {
case 'jpg' || 'png':
item.type = 'jpg'
break;
case 'xls' || 'xlsx':
item.type = 'xlsx'
break;
case 'doc' || 'docx' || 'dotx':
item.type = 'word'
break;
case 'ppt' || 'pptx':
item.type = 'ppt'
break;
default:
item.type = '未知文件'
break;
}
})
that.setData({
list: res.data,
applyMoveInFileList,
addressIndex: res.data.relation,
typeIndex: res.data.type,
startDate: res.data.rentStartTime,
endDate: res.data.rentEndTime
})
}
})
},
showToast(e) {
wx.showToast({
title: e,
icon: 'none'
})
},
fromsumb(e) {
var that = this,
regMobile = /^[1]([3-9])[0-9]{9}$/,
deta = e.detail.value
deta.type = that.data.typeIndex
deta.relation = that.data.addressIndex
deta.applyMoveInFileList = that.data.applyMoveInFileList
deta.rentStartTime = that.data.startDate
deta.rentEndTime = that.data.endDate
if (!deta.applyName) {
that.showToast('请输入申请企业名称')
return false
}
if (!deta.address) {
that.showToast('请输入承租地址')
return false
}
if (!deta.area) {
that.showToast('请输入租赁面积')
return false
}
if (!deta.userName) {
that.showToast('请输入联系人姓名')
return false
}
if (!deta.phone) {
that.showToast('请输入联系电话')
return false
}
if (!regMobile.test(deta.phone)) {
that.showToast('联系电话格式错误')
return false
}
if (!deta.contractNo) {
that.showToast('请输入场地服务合同编号')
return false
}
if (!deta.companyName) {
that.showToast('请输入拟成立/迁入企业名称')
return false
}
if (!deta.promise) {
that.showToast('请输入申请人承诺')
return false
}
app.AjaxRequest('POST', {
'content-type': 'application/json',
'Authorization': 'Bearer ' + app.Getopenid()
}, '/applyMoveIn/save', deta, function (res) {
if (res.code == 0) {
wx.showModal({
title: '提示',
content: '已提交成功',
success(res) {
wx.reLaunch({
url: '/pages/my/serviceApply/serviceApply',
})
}
})
}
})
}
})

View File

@ -0,0 +1,4 @@
{
"usingComponents": {},
"navigationBarTitleText": "厂房申请"
}

View File

@ -0,0 +1,109 @@
<view>
<form bindsubmit="fromsumb">
<view style="background:white;padding:40rpx;margin-top:22rpx;">
<view class="inputbox">
<text class="fontW">申请业务</text>
<input name='type' disabled="true" value="{{type}}" hidden="true"></input>
</view>
<view style="border-bottom: 1rpx solid #EEEEEE;padding-bottom: 20rpx;margin-bottom: 40rpx">
<text class="{{index == typeIndex ? 'da' : 'da1'}}" bindtap='typeRadio' data-idx='{{index}}'
wx:for='{{typeList}}' wx:key='index'>{{item}}</text>
</view>
<view class="inputbox">
<text class="fontW">申请企业名称<text style="color: red;margin-left:10rpx">*</text></text>
<input name='applyName' value="{{list.applyName}}"></input>
</view>
<view class="inputbox">
<text class="fontW">承租地址<text style="color: red;margin-left:10rpx">*</text></text>
<input name='address' value="{{list.address}}"></input>
</view>
<view class="inputbox">
<text class="fontW">租赁面积<text style="color: red;margin-left:10rpx">*</text></text>
<input name='area' value="{{list.area}}"></input>
</view>
<view class="inputbox">
<text class="fontW">联系人姓名<text style="color: red;margin-left:10rpx">*</text></text>
<input name='userName' value="{{list.userName}}"></input>
</view>
<view class="inputbox">
<text class="fontWs">联系电话<text style="color: red;margin-left:10rpx">*</text></text>
<input name='phone' value="{{list.phone}}" maxlength="11" type="number"></input>
</view>
<view class="inputbox">
<text class="fontWs">场地服务合同编号<text style="color: red;margin-left:10rpx">*</text></text>
<input name='contractNo' value="{{list.contractNo}}"></input>
</view>
<view class="inputbox">
<text class="fontW">期望入驻时间<text style="color: red;margin-left:10rpx">*</text></text>
<view style="border-bottom: 1rpx solid #EEEEEE;">
<picker mode="date" value="{{startDate}}" start="{{time}}" bindchange="startDateChange">
<text class="picker-txt">{{startDate}}</text>
</picker>
~
<picker mode="date" value="{{endDate}}" start="{{time}}" bindchange="endDateChange">
<text class="picker-txt">{{endDate}}</text>
</picker>
</view>
<!--
<image src="https://aabbcc.thinkine.com/upload/image/weixin_images/icon/r.png" mode="widthFix"
style="width:28rpx;height:28rpx;margin-top:14rpx;" class="floR"></image>-->
</view>
<view class="inputbox">
<text class="fontWs">拟成立/迁入企业名称<text style="color: red;margin-left:10rpx">*</text></text>
<input name='companyName' value="{{list.companyName}}"></input>
</view>
<view class="inputbox">
<text class="fontW">迁入企业与申请企业关系</text>
</view>
<view style="border-bottom: 1rpx solid #EEEEEE;padding-bottom: 20rpx;margin-bottom: 40rpx">
<text class="{{index == addressIndex ? 'da' : 'da1'}}" bindtap='addressRadio' data-idx='{{index}}'
wx:for='{{addressList}}' wx:key='index'>{{item}}</text>
</view>
<view class="inputbox" style="border-bottom: 1rpx solid #EEEEEE;padding-bottom: 30rpx;">
<text class="fontW">上传附件</text>
<view style="color:#AAAAAA;font-size: 24rpx;">
请提交投资计划书或者商业计划书;法人代表证件照;公司营业执照等相关资料</view>
<view class='uploFile' bindtap="uploFile">上传({{applyMoveInFileList.length}}/9)</view>
<view>
<view class="fileBox" wx:for="{{applyMoveInFileList}}" wx:key='index'>
<view style="width: 90rpx;display: inline-block">
<image src="/images/home/{{item.type}}.png" mode="widthFix" style="width: 100%;"></image>
</view>
<view style="display: inline-block;margin-left: 30rpx;width: 70%;">
<view style="width: 100%;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;">
{{item.fileName}}
</view>
<view style="color:#ADADAD;font-size: 26rpx;padding-top: 14rpx;">{{item.fileSize? item.fileSize:''}}
</view>
</view>
<view class="del" bindtap="delFile" data-index="{{index}}" wx:if="{{!id}}">
<image src="/images/home/del.png" mode="widthFix" style="width:100%"></image>
</view>
</view>
</view>
</view>
<view>
<view class="inputbox">
<text class="fontW">申请人承诺<text style="color: red;margin-left:10rpx">*</text></text>
</view>
<textarea maxlength="200" name='promise' value="{{list.promise}}"></textarea>
</view>
</view>
<view class="wwBox">
<button class="ww" formType='submit' wx:if="{{!id}}">立即申请</button>
</view>
</form>
</view>

View File

@ -0,0 +1,118 @@
.page {
width: 100%;
height: 100%;
box-sizing: border-box;
position: relative;
}
.wwBox {
width: 100%;
height: 100rpx;
}
.ww {
width: 88% !important;
height: 100rpx;
font-size: 28rpx;
color: white;
text-align: center;
line-height: 100rpx !important;
background: #4C84FF;
position: absolute !important;
padding: 0 !important;
border-radius: 8rpx !important;
z-index: 5;
margin: 60rpx 6%;
margin-left: 6% !important;
}
picker {
width: 45%;
height: 80rpx;
line-height: 80rpx;
padding-right: 10rpx;
padding-top: 4rpx;
/* border-bottom: 1rpx solid #EEEEEE; */
display: inline-block;
text-align: center;
}
.picker-txt {
font-size: 32rpx;
}
.bshaw {
padding: 10rpx 40rpx;
}
.fontW {
color: #000;
display: inline-block;
/* width: 400rpx; */
line-height: 50rpx;
}
.fontWs {
color: #000;
display: inline-block;
width: 90%;
line-height: 50rpx;
font-weight: 600;
}
input {
width: 100%;
margin-top: -2rpx;
padding-right: 30rpx;
box-sizing: border-box;
font-size: 32rpx;
color: #393939;
border-bottom: 1rpx solid #EEEEEE;
height: 80rpx;
line-height: 80rpx;
}
.inputbox {
font-size: 32rpx;
margin-bottom: 40rpx;
/* display: flex; */
/* padding: 30rpx 0; */
}
.inputbox:nth-last-child(2) {
border: none;
}
textarea {
height: 200rpx;
color: #393939;
font-size: 30rpx;
}
.uploFile {
width: 140rpx;
margin-bottom: 30rpx;
padding: 20rpx 40rpx;
background: #F7F7F7;
margin-top: 10rpx;
color: #4C84FF;
border-radius: 50rpx;
}
.del {
width: 46rpx;
height: 46rpx;
overflow: hidden;
position: absolute;
right: 34rpx;
top: 36%;
}
.fileBox {
vertical-align: middle;
box-sizing: border-box;
padding: 20rpx 30rpx;
background: #F8F8F8;
margin-bottom: 10rpx;
position: relative;
}

View File

@ -0,0 +1,355 @@
var app = getApp();
var util = require("../../../utils/util.js");
Page({
/**
* 页面的初始数据
*/
data: {
sex: ['否', '是'],
sexindex: 1,
addressList: ['项目团队孵化', '成立新公司'],
addressIndex: 0,
radiolist: ['未注册', '已注册'],
currentIndex: 0,
isComplianceList: ['否', '是'],
isComplianceIndex: 1,
applyParkFileList: []
},
uploFile() {
var that = this;
if (that.data.id) return
if (that.data.applyParkFileList.length >= 9) return
wx.showActionSheet({
itemList: ['上传图片', '打开微信聊天会话选择文件'],
success(res) {
if (res.tapIndex == 0) {
wx.chooseImage({
count: 1, //能选择文件的数量
success(res) {
that.upload(res.tempFiles)
}
})
} else {
wx.chooseMessageFile({
count: 1, //能选择文件的数量
type: 'file',
success(res) {
that.upload(res.tempFiles)
}
})
}
},
fail(res) {
console.log(res.errMsg)
}
})
},
upload(data) {
console.log(data)
var that = this
var applyParkFileList = that.data.applyParkFileList
wx.showLoading({
title: '上传中',
})
wx.uploadFile({
url: app.DOMAIN_NAME + '/dfs/upload?originalFilename=' + data[0].name,
header: {
'Authorization': 'Bearer ' + app.Getopenid()
},
filePath: data[0].path,
name: 'file',
success(res) {
var deta = JSON.parse(res.data)
if (deta.code == 401) {
wx.hideLoading()
wx.showModal({
confirmText: '好的',
content: deta.msg || '身份已过期,需重登录',
success: res => {
wx.reLaunch({
url: '/pages/login/login',
})
}
});
} else if (deta.code != 0) {
wx.hideLoading()
wx.showModal({
confirmText: '好的',
content: deta.msg || '服务器开小差去了,请重试',
showCancel: false
});
} else if (deta.code == 0) {
var first = deta.fileName.lastIndexOf("."); //取到文件名开始到最后一个点的长度
var namelength = deta.fileName.length; //取到文件名长度
var filesuffix = deta.fileName.substring(first + 1, namelength); //截取获得后缀名
var type = ''
switch (filesuffix) {
case 'jpg' || 'png':
type = 'jpg'
break;
case 'xls' || 'xlsx':
type = 'xlsx'
break;
case 'doc' || 'docx' || 'dotx':
type = 'word'
break;
case 'ppt' || 'pptx':
type = 'ppt'
break;
default:
type = '未知文件'
break;
}
applyParkFileList.push({
fileName: deta.originalFilename != "undefined" ? deta.originalFilename : deta.fileName,
filePath: deta.fileName,
fileSize: (data[0].size * 0.001).toFixed(2) + 'KB',
type
})
that.setData({
applyParkFileList
})
wx.hideLoading()
}
},
fail() {
wx.hideLoading()
}
})
},
delFile(e) {
var index = e.currentTarget.dataset.index,
applyParkFileList = this.data.applyParkFileList
applyParkFileList.splice(index, 1)
this.setData({
applyParkFileList
})
},
// 项目入园方式
addressRadio(e) {
this.setData({
addressIndex: e.currentTarget.dataset.idx,
type: e.currentTarget.dataset.idx
})
},
isComplianceClick(e) {
this.setData({
isComplianceIndex: e.currentTarget.dataset.idx,
isCompliance: e.currentTarget.dataset.idx
})
},
// 工商注册情况
radioClick(e) {
this.setData({
currentIndex: e.currentTarget.dataset.idx,
isRegister: e.currentTarget.dataset.idx
})
},
// 期望入驻开始时间选择
startDateChange(e) {
this.setData({
startDate: e.detail.value
})
},
// 期望入驻结束时间选择
endDateChange(e) {
this.setData({
endDate: e.detail.value
})
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(e) {
var time = util.formatDate(new Date())
this.setData({
id: e.id,
time,
startDate: time,
endDate: time
})
if (e.id) {
this.getList(e.id)
}
},
showToast(e) {
wx.showToast({
title: e,
icon: 'none'
})
},
getList(e) {
var that = this
app.AjaxRequest('get', {
'content-type': 'application/json',
'Authorization': 'Bearer ' + app.Getopenid()
}, '/applyPark/get/' + e, {}, function (res) {
if (res.code == 0) {
var applyParkFileList = res.data.applyParkFileList
applyParkFileList.forEach(item => {
var first = item.fileName.lastIndexOf("."); //取到文件名开始到最后一个点的长度
var namelength = item.fileName.length; //取到文件名长度
var filesuffix = item.fileName.substring(first + 1, namelength); //截取获得后缀名
switch (filesuffix) {
case 'jpg' || 'png':
item.type = 'jpg'
break;
case 'xls' || 'xlsx':
item.type = 'xlsx'
break;
case 'doc' || 'docx' || 'dotx':
item.type = 'word'
break;
case 'ppt' || 'pptx':
item.type = 'ppt'
break;
default:
item.type = '未知文件'
break;
}
})
that.setData({
list: res.data,
applyParkFileList,
startDate: res.data.startDate,
endDate: res.data.endDate,
isComplianceIndex: res.data.isCompliance,
addressIndex: res.data.type,
currentIndex: res.data.isRegister
})
}
})
},
fromsumb(e) {
var that = this,
regMobile = /^[1]([3-9])[0-9]{9}$/,
deta = e.detail.value
deta.isCompliance = that.data.isComplianceIndex
deta.type = that.data.addressIndex
deta.isRegister = that.data.currentIndex
deta.applyParkFileList = that.data.applyParkFileList
deta.startDate = that.data.startDate
deta.endDate = that.data.endDate
console.log(deta)
if (!deta.name) {
that.showToast('请输入拟入孵项目名称')
return false
}
if (!deta.operName) {
that.showToast('请输入拟定公司法人代表')
return false
}
if (!deta.registCapi) {
that.showToast('请输入拟定注册资本')
return false
}
/*
if (!deta.econKind) {
that.showToast('请输入企业性质')
return false
}
if (!deta.nation) {
that.showToast('请输入国家')
return false
}
*/
if (!deta.userName) {
that.showToast('请输入联系人姓名')
return false
}
if (!deta.position) {
that.showToast('请输入联系人职务')
return false
}
if (!deta.phone) {
that.showToast('请输入联系电话')
return false
}
if (!regMobile.test(deta.phone)) {
that.showToast('联系电话格式错误')
return false
}
/*
if (!deta.qq) {
that.showToast('请输入qq')
return false
}
*/
if (!deta.email) {
that.showToast('请输入邮箱')
return false
}
/*
if (!deta.site) {
that.showToast('请输入网址')
return false
}
if (!deta.persons) {
that.showToast('请输入公司人数')
return false
}
*/
if (!deta.preYearValue) {
that.showToast('请输入预估年产值')
return false
}
if (that.data.date == '请选择期望入驻时间') {
wx.showToast({
title: '请选择期望入驻时间',
icon: 'none'
})
return false
}
if (!deta.applyArea) {
that.showToast('请输入申请办公面积')
return false
}
if (!deta.profile) {
that.showToast('请输入项目简介')
return false
}
if (!deta.scope) {
that.showToast('请输入主营产品')
return false
}
if (!deta.advantage) {
that.showToast('请输入产品/企业优势')
return false
}
if (!deta.reason) {
that.showToast('请输入入驻原因')
return false
}
app.AjaxRequest('POST', {
'content-type': 'application/json',
'Authorization': 'Bearer ' + app.Getopenid()
}, '/applyPark/save', deta, function (res) {
if (res.code == 0) {
wx.showModal({
title: '提示',
content: '已提交成功',
success(res) {
if (res.confirm) {
wx.reLaunch({
url: '/pages/my/serviceApply/serviceApply',
})
}
}
})
}
})
}
})

View File

@ -0,0 +1,4 @@
{
"usingComponents": {},
"navigationBarTitleText": "项目入孵申请"
}

View File

@ -0,0 +1,177 @@
<view class='page'>
<view>
<form bindsubmit="fromsumb">
<input name='id' value="{{id}}" hidden="true"></input>
<view style="background:white;padding:40rpx;margin-top:22rpx;">
<view class="inputbox">
<text class="fontW">拟入孵项目名称<text style="color: red;margin-left:10rpx">*</text></text>
<input name='name' value="{{list.name}}"></input>
</view>
<view class="inputbox">
<text class="fontW">项目入园方式</text>
</view>
<view>
<text class="{{index == addressIndex ? 'da' : 'da1'}}" bindtap='addressRadio' data-idx='{{index}}'
wx:for='{{addressList}}' wx:key='index'>{{item}}</text>
</view>
<view class="inputbox">
<text class="fontW">工商注册情况<text style="color: red;margin-left:10rpx">*</text></text>
</view>
<view>
<text class="{{index == currentIndex ? 'da' : 'da1'}}" bindtap='radioClick' data-idx='{{index}}'
wx:for='{{radiolist}}' wx:key='index'>{{item}}</text>
</view>
</view>
<view style="background:white;padding:40rpx;margin-top:22rpx;">
<view class="inputbox">
<text class="fontW">拟定公司法人代表<text style="color: red;margin-left:10rpx">*</text></text>
<input name='operName' value="{{list.operName}}" maxlength="11"></input>
</view>
<view class="inputbox">
<text class="fontW">注册资本(万元)<text style="color: red;margin-left:10rpx">*</text></text>
<input name='registCapi' value="{{list.registCapi}}"></input>
</view>
<!--
<view class="inputbox">
<text class="fontWs">企业性质<text style="color: red;margin-left:10rpx">*</text></text>
<input name='econKind' value="{{list.econKind}}"></input>
</view>
<view class="inputbox">
<text class="fontWs">国家<text style="color: red;margin-left:10rpx">*</text></text>
<input name='nation' value="{{list.nation}}"></input>
</view> -->
<view class="inputbox">
<text class="fontWs">联系人姓名<text style="color: red;margin-left:10rpx">*</text></text>
<input name='userName' value="{{list.userName}}"></input>
</view>
<view class="inputbox">
<text class="fontWs">联系人职务<text style="color: red;margin-left:10rpx">*</text></text>
<input name='position' value="{{list.position}}"></input>
</view>
<view class="inputbox">
<text class="fontWs">联系电话<text style="color: red;margin-left:10rpx">*</text></text>
<input name='phone' value="{{list.phone}}" maxlength="11" type="number"></input>
</view>
<!--
<view class="inputbox">
<text class="fontWs">联系QQ<text style="color: red;margin-left:10rpx">*</text></text>
<input name='qq' value="{{list.qq}}"></input>
</view> -->
<view class="inputbox">
<text class="fontWs">邮箱<text style="color: red;margin-left:10rpx">*</text></text>
<input name='email' value="{{list.email}}"></input>
</view>
<!--
<view class="inputbox">
<text class="fontWs">网址<text style="color: red;margin-left:10rpx">*</text></text>
<input name='site' value="{{list.site}}"></input>
</view>
<view class="inputbox">
<text class="fontWs">公司人数<text style="color: red;margin-left:10rpx">*</text></text>
<input name='persons' value="{{list.persons}}"></input>
</view>
-->
<view class="inputbox">
<text class="fontW">是否有商业计划书<text style="color: red;margin-left:10rpx">*</text></text>
<!--
<image src="https://aabbcc.thinkine.com/upload/image/weixin_images/icon/r.png" mode="widthFix"
style="width:28rpx;height:28rpx;margin-top:14rpx;margin-left:250rpx;" class="floR"></image>-->
</view>
<view>
<text class="{{index == isComplianceIndex ? 'da' : 'da1'}}" bindtap='isComplianceClick' data-idx='{{index}}'
wx:for='{{isComplianceList}}' wx:key='index'>{{item}}</text>
</view>
<view class="inputbox">
<text class="fontWs">预估年产值(万元)<text style="color: red;margin-left:10rpx">*</text></text>
<input name='preYearValue' value="{{list.preYearValue}}"></input>
</view>
<view class="inputbox">
<text class="fontW">期望入驻时间<text style="color: red;margin-left:10rpx">*</text></text>
<view style="border-bottom: 1rpx solid #EEEEEE;">
<picker mode="date" value="{{startDate}}" start="{{time}}" bindchange="startDateChange">
<text class="picker-txt">{{startDate}}</text>
</picker>
~
<picker mode="date" value="{{endDate}}" start="{{time}}" bindchange="endDateChange">
<text class="picker-txt">{{endDate}}</text>
</picker>
</view>
<!--<image src="/images/1.png" mode="widthFix"
style="width:28rpx;height:28rpx;margin-top:14rpx;" class="floR"></image> -->
</view>
<view class="inputbox">
<text class="fontWs">申请办公面积(㎡)<text style="color: red;margin-left:10rpx">*</text></text>
<input name='applyArea' value="{{list.applyArea}}"></input>
</view>
</view>
<view style="background:white;padding:40rpx;margin-top:22rpx;">
<view class="inputbox">
<text class="fontW">项目简介<text style="color: red;margin-left:10rpx">*</text></text>
</view>
<textarea maxlength="200" name='profile' value="{{list.profile}}" adjust-position='false'></textarea>
<label class="floR">不少于50汉字</label>
</view>
<view style="background:white;padding:40rpx;margin-top:22rpx;">
<view class="inputbox">
<text class="fontW">主营产品<text style="color: red;margin-left:10rpx">*</text></text>
</view>
<textarea maxlength="200" name='scope' value="{{list.scope}}"></textarea>
<label class="floR">不少于25汉字</label>
</view>
<view style="background:white;padding:40rpx;margin-top:22rpx;">
<view class="inputbox">
<text class="fontW">产品/企业优势<text style="color: red;margin-left:10rpx">*</text></text>
</view>
<textarea maxlength="200" name='advantage' value="{{list.advantage}}"></textarea>
<label class="floR">不少于50汉字</label>
</view>
<view style="background:white;padding:40rpx;margin-top:22rpx;">
<view class="inputbox">
<text class="fontW">入驻原因(没有请写无)<text style="color: red;margin-left:10rpx">*</text></text>
</view>
<textarea maxlength="200" name='reason' value="{{list.reason}}"></textarea>
<label class="floR">不少于25汉字</label>
</view>
<view style="background:white;padding:40rpx;margin-top:22rpx;">
<view class="inputbox">
<text class="fontW">备注</text>
</view>
<textarea maxlength="200" name='memo' value="{{list.memo}}"></textarea>
</view>
<view style="background:white;padding:40rpx;margin-top:22rpx;">
<view class="inputbox">
<text class="fontW">资料上传</text>
<view style="color:#AAAAAA;font-size: 24rpx;">可上传内容:商业计划书、产品图片、营业执照副本等相关资料,格式不限</view>
<view class='uploFile' bindtap="uploFile">上传({{applyParkFileList.length}}/9)</view>
<view>
<view class="fileBox" wx:for="{{applyParkFileList}}" wx:key='index'>
<view style="width: 90rpx;display: inline-block">
<image src="/images/home/{{item.type}}.png" mode="widthFix" style="width: 100%;"></image>
</view>
<view style="display: inline-block;margin-left: 30rpx;width: 70%;">
<view style="width: 100%;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;">
{{item.fileName}}
</view>
<view style="color:#ADADAD;font-size: 26rpx;padding-top: 14rpx;">{{item.fileSize? item.fileSize:'..'}}</view>
</view>
<view class="del" bindtap="delFile" data-index="{{index}}" wx:if="{{!id}}">
<image src="/images/home/del.png" mode="widthFix" style="width:100%"></image>
</view>
</view>
</view>
</view>
</view>
<view class="wwBox">
<button class="ww" formType='submit' wx:if="{{!id}}">立即申请</button>
</view>
</form>
</view>
</view>

View File

@ -0,0 +1,120 @@
.page {
width: 100%;
height: 100%;
}
.page-section{
margin-bottom: 40rpx
}
.wwBox {
width: 100%;
height: 100rpx;
}
.ww {
width: 88% !important;
height: 100rpx;
font-size: 28rpx;
color: white;
text-align: center;
line-height: 100rpx !important;
background: #4C84FF;
padding: 0 !important;
border-radius: 8rpx !important;
z-index: 5;
margin: 60rpx 6%;
margin-left: 6% !important;
}
picker {
width: 45%;
height: 80rpx;
line-height: 80rpx;
padding-right: 10rpx;
padding-top: 4rpx;
/* border-bottom: 1rpx solid #EEEEEE; */
display: inline-block;
text-align: center;
}
.picker-txt {
font-size: 32rpx;
}
.bshaw {
padding: 10rpx 40rpx;
}
.fontW {
color: #000;
display: inline-block;
/* width: 400rpx; */
line-height: 50rpx;
}
.fontWs {
color: #000;
display: inline-block;
width: 90%;
line-height: 50rpx;
font-weight: 600;
}
input {
width: 100%;
margin-top: -2rpx;
padding-right: 30rpx;
box-sizing: border-box;
font-size: 32rpx;
color: #393939;
border-bottom: 1rpx solid #EEEEEE;
height: 80rpx;
line-height: 80rpx;
}
.inputbox {
font-size: 32rpx;
margin-bottom: 40rpx;
overflow: hidden;
/* display: flex; */
/* padding: 30rpx 0; */
}
.inputbox:nth-last-child(2) {
border: none;
}
textarea {
height: 200rpx;
color: #393939;
font-size: 30rpx;
}
.uploFile {
width: 140rpx;
margin-bottom: 30rpx;
padding: 20rpx 40rpx;
background: #F7F7F7;
margin-top: 10rpx;
color: #4C84FF;
border-radius: 50rpx;
}
.del {
width: 46rpx;
height: 46rpx;
overflow: hidden;
position: absolute;
right: 34rpx;
top: 36%;
}
.fileBox {
vertical-align: middle;
box-sizing: border-box;
padding: 20rpx 30rpx;
background: #F8F8F8;
margin-bottom: 10rpx;
position: relative;
}

View File

@ -0,0 +1,271 @@
var app = getApp();
var util = require("../../../utils/util.js");
Page({
/**
* 页面的初始数据
*/
data: {
sex: ['否', '是'],
sexindex: 1,
date: '请选择申请入驻时间',
type: 1,
addressList: ['公司搬迁至园区', '在园区开设分公司', '成立新公司', '其它'],
addressIndex: 0,
radiolist: ['未注册', '已注册'],
currentIndex: 0,
applySettleFileList: []
},
uploFile() {
var that = this
if (that.data.id) return
if (that.data.applySettleFileList.length >= 9) return
wx.showActionSheet({
itemList: ['上传图片', '打开微信聊天会话选择文件'],
success(res) {
if (res.tapIndex == 0) {
wx.chooseImage({
count: 1, //能选择文件的数量
success(res) {
that.upload(res.tempFiles)
}
})
} else {
wx.chooseMessageFile({
count: 1, //能选择文件的数量
type: 'file',
success(res) {
that.upload(res.tempFiles)
}
})
}
},
fail(res) {
console.log(res.errMsg)
}
})
},
upload(data) {
var that = this
var applySettleFileList = that.data.applySettleFileList
wx.showLoading({
title: '上传中',
})
wx.uploadFile({
url: app.DOMAIN_NAME + '/dfs/upload?originalFilename=' + data[0].name,
header: {
'Authorization': 'Bearer ' + app.Getopenid()
},
filePath: data[0].path,
name: 'file',
success(res) {
var deta = JSON.parse(res.data)
if (deta.code == 401) {
wx.hideLoading()
wx.showModal({
confirmText: '好的',
content: deta.msg || '身份已过期,需重登录',
success: res => {
wx.reLaunch({
url: '/pages/login/login',
})
}
});
} else if (deta.code != 0) {
wx.hideLoading()
wx.showModal({
confirmText: '好的',
content: deta.msg || '服务器开小差去了,请重试',
showCancel: false
});
} else if (deta.code == 0) {
var first = deta.fileName.lastIndexOf("."); //取到文件名开始到最后一个点的长度
var namelength = deta.fileName.length; //取到文件名长度
var filesuffix = deta.fileName.substring(first + 1, namelength); //截取获得后缀名
var type = ''
switch (filesuffix) {
case 'jpg' || 'png':
type = 'jpg'
break;
case 'xls' || 'xlsx':
type = 'xlsx'
break;
case 'doc' || 'docx' || 'dotx':
type = 'word'
break;
case 'ppt' || 'pptx':
type = 'ppt'
break;
default:
type = '未知文件'
break;
}
applySettleFileList.push({
fileName: deta.originalFilename != "undefined" ? deta.originalFilename : deta.fileName,
filePath: deta.fileName,
fileSize: (data[0].size * 0.001).toFixed(2) + 'KB',
type
})
that.setData({
applySettleFileList
})
wx.hideLoading()
}
}
})
},
delFile(e) {
var index = e.currentTarget.dataset.index,
applySettleFileList = this.data.applySettleFileList
applySettleFileList.splice(index, 1)
this.setData({
applySettleFileList
})
},
// 企业入园方式
addressRadio(e) {
this.setData({
addressIndex: e.currentTarget.dataset.idx,
address: e.currentTarget.dataset.idx
})
},
// 申请入驻时间选择
bindDateChange(e) {
var time = new Date(e.detail.value).getTime();
console.log(e.detail.value)
this.setData({
date: e.detail.value,
timec: time
})
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(e) {
var time = util.formatDate(new Date())
this.setData({
date: time
})
if (e.id) {
this.setData({
id: e.id
})
this.getList(e.id)
}
},
getList(e) {
var that = this
app.AjaxRequest('get', {
'content-type': 'application/json',
'Authorization': 'Bearer ' + app.Getopenid()
}, '/settle/get/' + e, {}, function (res) {
if (res.code == 0) {
var applySettleFileList = res.data.applySettleFileList
applySettleFileList.forEach(item => {
var first = item.fileName.lastIndexOf("."); //取到文件名开始到最后一个点的长度
var namelength = item.fileName.length; //取到文件名长度
var filesuffix = item.fileName.substring(first + 1, namelength); //截取获得后缀名
switch (filesuffix) {
case 'jpg' || 'png':
item.type = 'jpg'
break;
case 'xls' || 'xlsx':
item.type = 'xlsx'
break;
case 'doc' || 'docx' || 'dotx':
item.type = 'word'
break;
case 'ppt' || 'pptx':
item.type = 'ppt'
break;
default:
item.type = '未知文件'
break;
}
})
that.setData({
list: res.data,
applySettleFileList,
date: res.data.startTime,
isComplianceIndex: res.data.isCompliance,
addressIndex: res.data.type
})
}
})
},
showToast(e) {
wx.showToast({
title: e,
icon: 'none'
})
},
fromsumb(e) {
var that = this,
regMobile = /^[1]([3-9])[0-9]{9}$/,
deta = e.detail.value
deta.isCompliance = that.data.isComplianceIndex
deta.type = that.data.addressIndex
deta.applyParkFileList = that.data.applyParkFileList
deta.startTime = that.data.date
deta.applySettleFileList = that.data.applySettleFileList
if (!deta.userName) {
that.showToast('请输入联系人姓名')
return false
}
if (!deta.name) {
that.showToast('请输入入驻企业名称')
return false
}
if (!deta.operName) {
that.showToast('请输入法人代表')
return false
}
if (!deta.needArea) {
that.showToast('请输入所需办公面积')
return false
}
if (!deta.persons) {
that.showToast('请输入首批入驻人数')
return false
}
if (!deta.phone) {
that.showToast('请输入联系电话')
return false
}
if (!regMobile.test(deta.phone)) {
that.showToast('联系电话格式错误')
return false
}
if (!deta.email) {
that.showToast('请输入邮箱')
return false
}
app.AjaxRequest('POST', {
'content-type': 'application/json',
'Authorization': 'Bearer ' + app.Getopenid()
}, '/settle/save', deta, function (res) {
if (res.code == 0) {
wx.showModal({
title: '提示',
content: '已提交成功',
success(res) {
if (res.confirm) {
wx.reLaunch({
url: '/pages/my/serviceApply/serviceApply',
})
}
}
})
}
})
}
})

View File

@ -0,0 +1,4 @@
{
"usingComponents": {},
"navigationBarTitleText": "企业入驻"
}

View File

@ -0,0 +1,83 @@
<view>
<form bindsubmit="fromsumb">
<view style="background:white;padding:40rpx;margin-top:22rpx;">
<view class="inputbox">
<text class="fontW">企业名称<text style="color: red;margin-left:10rpx">*</text></text>
<input name='name' value="{{list.name}}" type="text"></input>
</view>
<view class="inputbox">
<text class="fontW">企业入园方式</text>
<input name='address' disabled="true" value="{{address}}" hidden="true"></input>
<!--
<image src="https://aabbcc.thinkine.com/upload/image/weixin_images/icon/r.png" mode="widthFix"
style="width:28rpx;height:28rpx;margin-top:14rpx;margin-left:250rpx;" class="floR"></image>-->
</view>
<view>
<text class="{{index == addressIndex ? 'da' : 'da1'}}" bindtap='addressRadio' data-idx='{{index}}'
wx:for='{{addressList}}' wx:key='index'>{{item}}</text>
</view>
</view>
<view style="background:white;padding:40rpx;margin-top:22rpx;">
<view class="inputbox">
<text class="fontW">法人代表<text style="color: red;margin-left:10rpx">*</text></text>
<input name='operName' value="{{list.operName}}" maxlength="11" type="text"></input>
</view>
<view class="inputbox">
<text class="fontWs">所需办公面积<text style="color: red;margin-left:10rpx">*</text></text>
<input name='needArea' value="{{list.needArea}}" type="number"></input>
</view>
<view class="inputbox">
<text class="fontW">首批入驻人数(人)<text style="color: red;margin-left:10rpx">*</text></text>
<input name='persons' value="{{list.persons}}" type="number"></input>
</view>
<view class="inputbox">
<text class="fontW">申请入驻时间<text style="color: red;margin-left:10rpx">*</text></text>
<picker mode="date" value="{{date}}" start="{{time}}" bindchange="bindDateChange">
<text class="picker-txt">{{date}}</text>
</picker>
<!--
<image src="https://aabbcc.thinkine.com/upload/image/weixin_images/icon/r.png" mode="widthFix"
style="width:28rpx;height:28rpx;margin-top:14rpx;" class="floR"></image>-->
</view>
<view class="inputbox">
<text class="fontW">联系人姓名<text style="color: red;margin-left:10rpx">*</text></text>
<input name='userName' value="{{list.userName}}" type="text"></input>
</view>
<view class="inputbox">
<text class="fontWs">联系电话<text style="color: red;margin-left:10rpx">*</text></text>
<input name='phone' value="{{list.phone}}" maxlength="11" type="number"></input>
</view>
<view class="inputbox">
<text class="fontWs">邮箱<text style="color: red;margin-left:10rpx">*</text></text>
<input name='email' value="{{list.email}}" type="text"></input>
</view>
<view class="inputbox">
<text class="fontW">资料上传</text>
<view style="color:#AAAAAA;font-size: 24rpx;">可上传内容:企业简介、个人简介、营业执照副本等相关资料,格式不限</view>
<view class='uploFile' bindtap="uploFile">上传({{applySettleFileList.length}}/9)</view>
<view>
<view class="fileBox" wx:for="{{applySettleFileList}}" wx:key='index'>
<view style="width: 90rpx;display: inline-block">
<image src="/images/home/{{item.type}}.png" mode="widthFix" style="width: 100%;"></image>
</view>
<view style="display: inline-block;margin-left: 30rpx;width: 70%;">
<view style="width: 100%;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;">
{{item.fileName}}
</view>
<view style="color:#ADADAD;font-size: 26rpx;padding-top: 14rpx;">{{item.fileSize? item.fileSize:''}}
</view>
</view>
<view class="del" bindtap="delFile" data-index="{{index}}" wx:if="{{!id}}">
<image src="/images/home/del.png" mode="widthFix" style="width:100%"></image>
</view>
</view>
</view>
</view>
</view>
<view class="wwBox">
<button class="ww" formType='submit' wx:if="{{!id}}">立即申请</button>
</view>
</form>
</view>

View File

@ -0,0 +1,116 @@
.page {
width: 100%;
height: 100%;
box-sizing: border-box;
position: relative;
}
.wwBox {
width: 100%;
height: 100rpx;
}
.ww {
width: 88% !important;
height: 100rpx;
font-size: 28rpx;
color: white;
text-align: center;
line-height: 100rpx !important;
background: #4C84FF;
position: absolute !important;
padding: 0 !important;
border-radius: 8rpx !important;
z-index: 5;
margin: 60rpx 6%;
margin-left: 6% !important;
}
picker {
width: 100%;
height: 80rpx;
line-height: 80rpx;
padding-right: 10rpx;
padding-top: 4rpx;
border-bottom: 1rpx solid #EEEEEE;
}
.picker-txt {
font-size: 32rpx;
}
.bshaw {
padding: 10rpx 40rpx;
}
.fontW {
color: #000;
display: inline-block;
/* width: 400rpx; */
line-height: 50rpx;
}
.fontWs {
color: #000;
display: inline-block;
width: 90%;
line-height: 50rpx;
font-weight: 600;
}
input {
width: 100%;
margin-top: -2rpx;
padding-right: 30rpx;
box-sizing: border-box;
font-size: 32rpx;
color: #393939;
border-bottom: 1rpx solid #EEEEEE;
height: 80rpx;
line-height: 80rpx;
}
.inputbox {
font-size: 32rpx;
margin-bottom: 40rpx;
/* display: flex; */
/* padding: 30rpx 0; */
}
.inputbox:nth-last-child(2) {
border: none;
}
textarea {
height: 200rpx;
color: #393939;
font-size: 30rpx;
}
.uploFile {
width: 140rpx;
margin-bottom: 30rpx;
padding: 20rpx 40rpx;
background: #F7F7F7;
margin-top: 10rpx;
color: #4C84FF;
border-radius: 50rpx;
}
.del {
width: 46rpx;
height: 46rpx;
overflow: hidden;
position: absolute;
right: 34rpx;
top: 36%;
}
.fileBox {
vertical-align: middle;
box-sizing: border-box;
padding: 20rpx 30rpx;
background: #F8F8F8;
margin-bottom: 10rpx;
position: relative;
}

View File

@ -0,0 +1,61 @@
var app = getApp()
Page({
data: {
type: 1,
currentTab: 0,
labelList: [
'休闲',
'免费'
],
homelist: [],
IMG_NAME: app.IMG_NAME
},
onShow(e) {
let that = this
// wx.setStorageSync('token', '535e73059d2f4301b78d05326e1a55d8')
app.AjaxRequest('get', {
'content-type': 'application/json',
'Authorization': 'Bearer ' + app.Getopenid()
}, '/activity/list', {},
function (res) {
if (res.code == 0) {
for (var i in res.rows) {
let day = res.rows[i].actBegin.slice(5, 7) + '月' + res.rows[i].actBegin.slice(8, 10) + '日'
res.rows[i].day = day
}
that.setData({
homelist: res.rows
})
}
})
},
//滑动切换
swiperTab: function (e) {
var that = this
that.setData({
currentTab: e.detail.current
})
},
//点击切换
clickTab: function (e) {
var that = this
if (this.data.currentTab === e.target.dataset.current) {
return false
} else {
that.setData({
currentTab: e.target.dataset.current
})
}
},
navDetail(e) {
let that = this
let index = e.currentTarget.dataset.index
if (wx.getStorageSync('token')) {
wx.navigateTo({
url: '/pages/community/eventDetails/eventDetails?id=' + that.data.homelist[index].id
})
} else {
app.getlogin()
}
}
})

View File

@ -0,0 +1,4 @@
{
"usingComponents": {},
"navigationBarTitleText": "活动"
}

View File

@ -0,0 +1,26 @@
<scroll-view style="height:100%;padding: 0 26rpx;box-sizing: border-box;" scroll-y="true" wx:if="{{homelist.length>0}}">
<view class="boxs" wx:for='{{homelist}}' wx:key="index" data-index="{{index}}" bindtap="navDetail">
<view>
<label class="label labelFull" wx:if="{{item.status == 'SIGN_NOT_START'}}">报名未开始</label>
<label class="label labelFull" wx:if="{{item.status == 'ACT_NOT_START'}}">活动未开始</label>
<label class="label labelIn" wx:if="{{item.status=='SIGNING'}}">报名中</label>
<label class="label labelFull" wx:if="{{item.status=='SIGN_NOT_START'}}">报名未开始</label>
<label class="label labelFull" wx:if="{{item.status=='ACT_END'}}">已结束</label>
<label class="label labelFull" wx:if="{{item.status=='SIGN_END'}}">已满额</label>
</view>
<view style="height:360rpx;overflow:hidden;">
<image src="{{IMG_NAME}}{{item.smallImg}}" mode='widthFix' style="width:100%;"></image>
</view>
<view class="detailbox">
<!-- <view class="dayTime">{{item.day}}</view> -->
<view>
<view class="titleC" style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis;margin: 0;">
{{item.name}}
</view>
<view class="detailTextC">{{item.actBegin }}</view>
<view class="detailTextC">{{item.location}}</view>
</view>
</view>
</view>
</scroll-view>
<view wx:else style="text-align:center;margin-top:50%;font-size:30rpx;">暂无活动数据</view>

View File

@ -0,0 +1,107 @@
swiper {
height: 100%;
}
.boxs {
background: white;
border-radius: 24rpx;
overflow: hidden;
margin: 20rpx 0;
position: relative;
}
.swiper-tab {
width: 100%;
/* border-bottom: 1rpx solid #ccc; */
text-align: center;
height: 8%;
line-height: 88rpx;
font-weight: bold;
display: flex;
background-color: white;
font-size: 11pt;
}
.swiper-tab-item {
display: inline-block;
flex: 1;
color: #A3A3A3;
}
.active {
color: black;
}
.btn {
position: absolute;
top: 10%;
right: 30rpx;
color: white;
background: #ffa200;
padding: 0 40rpx;
height: 62rpx;
border-radius: 31rpx;
text-align: center;
line-height: 62rpx;
}
.detailbox {
padding: 26rpx 26rpx;
line-height: 40rpx;
}
.labelInProgress {
border: 1rpx solid #B52F2E;
font-size: 20rpx;
padding: 4rpx 10rpx;
border-radius: 50rpx;
color: #B52F2E;
margin-right: 12rpx;
}
.label {
color: white;
position: absolute;
right: 0;
font-size: 20rpx;
padding: 4rpx 16rpx;
border-radius:0 24rpx 0 24rpx;
}
.labelIn{
background-color: #2384E8;
}
.labelFull{
background-color: #BBC2C9;
}
.labelInFull {
border: 1rpx solid black;
font-size: 20rpx;
padding: 4rpx 10rpx;
border-radius: 50rpx;
color: black;
margin-right: 12rpx;
}
.labelBox {
font-size: 20rpx;
padding: 4rpx 10rpx;
border-radius: 50rpx;
background-color: #A9A9A9;
color: white;
margin-right: 12rpx;
}
.dayTime {
width: 90rpx;
height: 90rpx;
border: 1rpx solid;
border-radius: 50%;
text-align: center;
padding: 0 2%;
box-sizing: border-box;
position: absolute;
left: 14rpx;
}

View File

@ -0,0 +1,58 @@
var WxParse = require('../../../wxParse/wxParse.js')
let app = getApp()
Page({
/**
* 页面的初始数据
*/
data: {
IMG_NAME: app.IMG_NAME
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
let that = this
that.setData({
id: options.id
})
},
onShow() {
if (this.data.id) {
this.getList()
}
},
getList() {
let that = this
app.AjaxRequest('GET', {
'content-type': 'application/json',
'Authorization': 'Bearer ' + app.Getopenid()
}, '/activity/signDetail', {
id: that.data.id,
},
function (res) {
if (res.code == 0) {
that.setData({
actBegin: res.data.actBegin.substring(0, res.data.actBegin.length - 3),
actEnd: res.data.actEnd.substring(0, res.data.actEnd.length - 3),
datas: res.data
})
if (res.data.content) {
var article = res.data.content
WxParse.wxParse('article', 'html', article, that)
}
}
})
},
phoneCall() {
wx.makePhoneCall({
phoneNumber: JSON.stringify(this.data.datas.contract)
})
},
regist() {
wx.navigateTo({
url: '../registration/registration?actId=' + this.data.datas.id,
})
}
})

View File

@ -0,0 +1,4 @@
{
"usingComponents": {},
"navigationBarTitleText": "活动详情"
}

View File

@ -0,0 +1,74 @@
<import src="../../../wxParse/wxParse.wxml" />
<scroll-view class="page" scroll-y="true">
<view style="background:white;padding:26rpx 26rpx;">
<image src="{{IMG_NAME+datas.headImg}}" mode="widthFix"></image>
<view class="header borderBottom">
<view style="font-weight: 600;font-size: 14pt">{{datas.name}}</view>
<view style="display:flex;color:#E35659;">
<!-- <view style="margin-right:16rpx;">
<text class="iconfont iconprice"></text>
<text style="font-size:26rpx;margin-right:16rpx">{{datas.price==0? '免费' : '¥'+datas.price}}</text>
<text style="font-size:26rpx;" wx:if="{{datas.price!=0}}">线下支付</text>
</view> -->
<!-- <view style="margin-right:16rpx;">
<text class="iconfont iconwode"></text>
<text style="font-size:26rpx;">{{datas.fullNum}}</text>
</view> -->
<!-- <view class="lable">
<text class="circular"></text>
<text wx:if="{{datas.status=='SIGNING'}}">报名中</text>
<text wx:if="{{datas.status=='SIGN_NOT_START'}}">报名未开始</text>
<text wx:if="{{datas.status=='ACT_NOT_START'}}">活动未开始</text>
<text wx:if="{{datas.status=='ACT_END'}}">已结束</text>
<text wx:if="{{datas.status=='SIGN_END'}}">已满额</text>
</view> -->
</view>
</view>
<view class="information">
<view>
<text>活动时间:</text>
<text>{{actBegin}} 至 </text>
<text>{{actEnd}}</text>
</view>
<view>
<text>活动地点:</text>
<text style="margin-right:14rpx;">{{datas.location}}</text>
</view>
<view>
<text>收费方式:</text>
<text style="font-size:26rpx;margin-right:26rpx">{{datas.price==0? '免费' : '¥'+datas.price}}</text>
<text style="font-size:26rpx;" wx:if="{{datas.price!=0}}">线下支付</text>
</view>
<view>
<text>联系电话:</text>
<text bindtap="phoneCall" style="margin-right:14rpx;color:#578CFF">{{datas.contract}}</text>
</view>
</view>
</view>
<view style="padding:26rpx 26rpx;margin-top: 20rpx;background:white;padding-bottom: 120rpx;">
<view style="font-weight: 600;font-size: 12pt;padding-bottom:26rpx;" class="borderBottom">活动详情</view>
<view class="wxParse">
<template is="wxParse" data="{{wxParseData:article.nodes}}" />
</view>
<view style="margin-bottom:20rpx;">已报名 {{datas.currentNum}} 位</view>
<view>
<block wx:for="{{datas.activityDetails}}" wx:key='index'>
<image src="{{items.avatar? IMG_NAME+items.avatar: '../../../images/user-unlogin.jpg'}}" mode="widthFix"
style="width:10%;border-radius:50%;overflow:hidden;margin-right:16rpx;">
</image>
</block>
</view>
</view>
</scroll-view>
<!-- <view class="btn" wx:if="{{datas.isSign == true}}" style="background:#A5A5A5;color:white;">已报名</view>
<view class="btn" wx:if="{{datas.status == 'SIGN_NOT_START'}}" style="background:#A5A5A5;color:white;">报名未开始</view>
<view class="btn" wx:if="{{datas.status == 'ACT_NOT_START'}}" style="background:#A5A5A5;color:white;">活动未开始</view>
<view class="btn" wx:if="{{datas.status == 'SIGN_END'}}" style="background:#A5A5A5;color:white;">已满额</view>
<view class="btn" wx:if="{{datas.status == 'ACT_END'}}" style="background:#A5A5A5;color:white;">活动结束</view>
<view class="btn" wx:if="{{datas.status == 'ACTING'}}" style="background:#A5A5A5;color:white;">活动中</view> -->
<view class="btnbox">
<view class="btn" bindtap="regist" wx:if="{{datas.isSign == false && datas.status=='SIGNING'}}">立即报名</view>
<view class="btn" wx:if="{{datas.isSign == true}}">已报名</view>
</view>

View File

@ -0,0 +1,81 @@
@import "/wxParse/wxParse.wxss";
.page {
height: 100%;
text-align: left;
font-size: 32rpx;
color: black;
box-sizing: border-box;
line-height: 60rpx;
overflow-y: auto;
/* padding-bottom: 100rpx; */
}
.lable {
padding: 0 40rpx;
background-color: #FFB84E;
font-size: 22rpx;
color: white;
border-radius: 50rpx;
height: 56rpx;
line-height: 56rpx;
position: relative;
position: absolute;
right: -5%;
top: 45%;
}
.circular {
display: inline-block;
background: white;
width: 14rpx;
height: 14rpx;
border-radius: 50%;
position: absolute;
top: 36%;
left: 10%;
}
.header {
position: relative;
padding: 20rpx 0;
}
.iconfont {
color: #E35659;
margin-right: 12rpx;
}
.information {
font-size: 11pt;
color: #666666;
position: relative;
/* padding: 4% 0; */
}
.information .iconfont {
color: #AFAFAF;
}
.wxParse {
padding: 4% 0;
}
.btnbox {
padding: 0 26rpx;
box-sizing: border-box;
width: 100%;
width: 100%;
position: fixed;
bottom: 24rpx;
}
.btn {
font-size: 34rpx;
width: 100% !important;
background-color: #4C84FF;
color: white;
text-align: center;
line-height: 100rpx;
border-radius: 8rpx;
}

View File

@ -0,0 +1,95 @@
let app = getApp()
Page({
/**
* 页面的初始数据
*/
data: {
form: {
userName: '',
phone: '',
sex: 0
},
sex: ['男', '女'],
sexindex: 0
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (e) {
let that = this
app.AjaxRequest('get', {
'content-type': 'application/json',
'Authorization': 'Bearer ' + app.Getopenid()
}, '/user/profile', {}, function (res) {
that.setData({
'form.userId': res.data.userId,
'form.userName': res.data.nickname,
'form.actId': e.actId,
'form.sex': res.data.sex,
sexindex: res.data.sex
})
})
},
// 性别选择
sexChange: function (e) {
this.setData({
sexindex: e.detail.value,
'form.sex': parseInt(e.detail.value)
})
},
formSubmit(e) {
let that = this
let form = that.data.form
if (form.userName == '') {
wx.showToast({
title: '请先填写姓名',
duration: 3000,
icon: 'none'
})
return false
}
wx.showModal({
title: '提示',
content: '是否确认报名',
success(res) {
if (res.confirm) {
app.AjaxRequest('POST', {
'content-type': 'application/json',
'Authorization': 'Bearer ' + app.Getopenid()
}, '/activity/addSign?parkId=' + wx.getStorageSync('parkId'), {
userName: form.userName,
sex: form.sex,
mobile: form.phone,
userId: form.userId,
actId: form.actId
},
function (res) {
if (res.code == 0) {
wx.navigateBack()
}
})
}
}
})
},
bindPickerChange: function (e) {
this.setData({
'form.index': e.detail.value
})
},
bindCompanyChange(e) {
this.setData({
'form.companyindex': e.detail.value
})
},
valueChange(e) {
let a = "form." + e.currentTarget.dataset.type
console.log(a)
this.setData({
[a]: e.detail.value
})
}
})

View File

@ -0,0 +1,4 @@
{
"usingComponents": {},
"navigationBarTitleText": "活动报名"
}

View File

@ -0,0 +1,52 @@
<view class="page">
<form bindsubmit="formSubmit" bindreset="formReset">
<view class="sectionBox">
<view class="section">
<view class="section__title">手机号:</view>
<input name="input" type="number" required name="phone" value='{{form.phone}}' placeholder="请输入手机号"
bindinput='valueChange' data-type="phone" maxlength="11" />
</view>
<view class="section">
<view class="section__title">姓名:</view>
<input name="input" type="text" required name="userName" value='{{form.userName}}' placeholder="请输入姓名"
bindinput='valueChange' data-type="userName" />
</view>
<view class="section">
<view class="section__title">性别:</view>
<picker bindchange="sexChange" name="sex" value="{{sexindex}}" range="{{sex}}">
<text class="picker-txt">{{sex[sexindex]}}</text>
</picker>
<text class="iconfont iconxia" style="color:black"></text>
</view>
<!-- <view class="section">
<view class="section__title">园区:</view>
<picker bindchange="bindPickerChange" value="{{index}}" range="{{array}}">
<view class="picker">{{array[form.index]}}</view>
</picker>
</view>
<view class="section">
<view class="section__title">公司:</view>
<picker bindchange="bindCompanyChange" value="{{index}}" range="{{company}}">
<view class="picker">{{company[form.companyindex]}}</view>
</picker>
</view>
<view class="section">
<view class="section__title">职位:</view>
<input name="input" type="text" required name="position" value='{{form.position}}' placeholder="请输入姓名"
bindinput='valueChange' data-type="position" />
</view> -->
</view>
<view style="display:flex;align-items:center;justify-content: center;color:red;">注意:您的个人信息,仅用活动主办方联系您,不做其他用途,您提交表示同意,不提交表示不同意。</view>
<view class="btn-area">
<button formType="submit">确认信息并报名</button>
</view>
</form>
</view>

View File

@ -0,0 +1,50 @@
.page {
width: 100%;
height: 100%;
padding: 26rpx;
box-sizing: border-box;
}
.sectionBox {
background: white;
padding: 0 26rpx;
border-radius: 24rpx;
overflow: hidden;
margin-bottom: 20rpx;
}
.section {
border-bottom: 1rpx solid #F5F6F8;
display: flex;
padding: 6% 0;
box-sizing: border-box;
}
.section__title {
font-size: 28rpx;
width: 20%;
line-height: 44rpx;
}
input {
width: 80%;
font-size: 30rpx;
font-weight: 600;
}
picker {
width: 80%;
font-size: 30rpx;
font-weight: 600
}
button {
font-size: 34rpx;
width: 100% !important;
background-color: #4C84FF;
color: white;
text-align: center;
line-height: 100rpx !important;
padding: 0 !important;
border-radius: 8rpx;
}

View File

@ -0,0 +1,71 @@
let app = getApp()
Page({
data: {
currentTab: 0
},
onShow() {
this.getList()
},
getList(status) {
let that = this
let url = ''
if (that.data.currentTab == 0) {
url = '/suggestion/list'
} else if (that.data.currentTab == 1) {
url = '/suggestion/list?status=1'
} else if (that.data.currentTab == 2) {
url = '/suggestion/list?status=2'
} else if (that.data.currentTab == 3) {
url = '/suggestion/list?status=3'
}
app.AjaxRequest('GET', {
'content-type': 'application/json',
'Authorization': 'Bearer ' + app.Getopenid()
}, url, {}, function (res) {
if (res.code == 0) {
that.setData({
list: res.data
})
}
})
},
//滑动切换
swiperTab (e) {
var that = this
that.setData({
currentTab: e.detail.current
})
that.getList()
},
//点击切换
clickTab (e) {
var that = this
if (this.data.currentTab === e.target.dataset.current) {
return false
} else {
that.setData({
currentTab: e.target.dataset.current
})
}
},
scrollToLower() {
},
create() {
wx.navigateTo({
url: '/pages/complaint/newComplaint/newComplaint',
})
},
repairDetail(e) {
wx.navigateTo({
url: '/pages/complaint/complaintDetail/complaintDetail?id=' + e.currentTarget.dataset.id,
})
}
})

View File

@ -0,0 +1,4 @@
{
"usingComponents": {},
"navigationBarTitleText": "园区建议"
}

View File

@ -0,0 +1,106 @@
<view class="page">
<view class="next" bindtap="create">我要建议</view>
<view class="swiper-tab">
<view class="swiper-tab-item {{currentTab==0?'active':''}}" data-current="0" bindtap="clickTab">全部</view>
<view class="swiper-tab-item {{currentTab==1?'active':''}}" data-current="1" bindtap="clickTab">分派中</view>
<view class="swiper-tab-item {{currentTab==2?'active':''}}" data-current="2" bindtap="clickTab">处理中</view>
<view class="swiper-tab-item {{currentTab==3?'active':''}}" data-current="3" bindtap="clickTab">已完成</view>
</view>
<swiper current="{{currentTab}}" duration="300" bindchange="swiperTab">
<swiper-item>
<scroll-view scroll-y="true" bindscrolltolower="scrollToLower">
<view class="contenBox textcolor" wx:for="{{list}}" wx:key='index' data-id="{{item.id}}" bindtap="repairDetail">
<view style="margin-bottom:18rpx;">
<text style="font-size:30rpx;color:black;">建议单号:</text>
<text style="font-size:30rpx;color:black;">{{item.sn}}</text>
</view>
<view style="margin-bottom:10rpx;color:#4C84FF;">
<text>状态:</text>
<text wx:if="{{item.status==1}}">分派中</text>
<text wx:if="{{item.status==2}}">处理中</text>
<text wx:if="{{item.status==3}}">已完成</text>
</view>
<view style="margin-bottom:10rpx;">
<text>建议时间:</text>
<text>{{item.createTime}}</text>
</view>
<view>
<text>描述:</text>
<text>{{item.content}}</text>
</view>
</view>
</scroll-view>
</swiper-item>
<swiper-item>
<scroll-view scroll-y="true" bindscrolltolower="scrollToLower">
<view class="contenBox textcolor" wx:for="{{list}}" wx:key='index' data-id="{{item.id}}" bindtap="repairDetail">
<view style="margin-bottom:18rpx;">
<text style="font-size:30rpx;color:black;">建议单号:</text>
<text style="font-size:30rpx;color:black;">{{item.sn}}</text>
</view>
<view style="margin-bottom:10rpx;color:#4C84FF;">
<text>状态:</text>
<text>分派中</text>
</view>
<view style="margin-bottom:10rpx;">
<text>建议时间:</text>
<text>{{item.createTime}}</text>
</view>
<view>
<text>描述:</text>
<text>{{item.content}}</text>
</view>
</view>
</scroll-view>
</swiper-item>
<swiper-item>
<scroll-view scroll-y="true" bindscrolltolower="scrollToLower">
<view class="contenBox textcolor" wx:for="{{list}}" wx:key='index' data-id="{{item.id}}" bindtap="repairDetail">
<view style="margin-bottom:18rpx;">
<text style="font-size:30rpx;color:black;">建议单号:</text>
<text style="font-size:30rpx;color:black;">{{item.sn}}</text>
</view>
<view style="margin-bottom:10rpx;color:#4C84FF;">
<text>状态:</text>
<text>处理中</text>
</view>
<view style="margin-bottom:10rpx;">
<text>建议时间:</text>
<text>{{item.createTime}}</text>
</view>
<view>
<text>描述:</text>
<text>{{item.content}}</text>
</view>
</view>
</scroll-view>
</swiper-item>
<swiper-item>
<scroll-view scroll-y="true" bindscrolltolower="scrollToLower">
<view class="contenBox textcolor" wx:for="{{list}}" wx:key='index' data-id="{{item.id}}" bindtap="repairDetail">
<view style="margin-bottom:18rpx;">
<text style="font-size:30rpx;color:black;">建议单号:</text>
<text style="font-size:30rpx;color:black;">{{item.sn}}</text>
</view>
<view style="margin-bottom:10rpx;color:#4C84FF;">
<text>状态:</text>
<text>已完成</text>
</view>
<view style="margin-bottom:10rpx;">
<text>建议时间:</text>
<text>{{item.createTime}}</text>
</view>
<view>
<text>描述:</text>
<text>{{item.content}}</text>
</view>
</view>
</scroll-view>
</swiper-item>
</swiper>
</view>

View File

@ -0,0 +1,62 @@
.page{
position: relative;
width: 100%;
height: 100%;
}
.next{
margin-left: 5%;
width: 90% !important;
position: fixed;
bottom: 4%;
}
.swiper-tab {
width: 100%;
background-color: white;
border-bottom: 2rpx solid #ccc;
text-align: center;
height: 88rpx;
line-height: 88rpx;
font-size: 28rpx;
}
swiper {
width: 100%;
height: 92%;
}
scroll-view {
width: 100%;
height: 100%;
background-color: #F3F3F3;
}
.swiper-tab-item {
display: inline-block;
width: 25%;
color: #4A4A4A;
}
.active {
color: #4C84FF;
border-bottom: 4rpx solid #4C84FF;
}
.contenBox {
background-color: white;
padding: 2% 4%;
margin-top: 20rpx;
position: relative;
}
.evaluate {
border: 1rpx solid #C11D24;
color: #C11D24;
width: 140rpx;
height: 64rpx;
text-align: center;
line-height: 64rpx;
border-radius: 8rpx;
position: absolute;
bottom: 6%;
right: 2%;
}

View File

@ -0,0 +1,66 @@
let app = getApp()
Page({
data: {
currentTab: 0,
IMG_NAME: app.IMG_NAME
},
onLoad(e) {
let that = this
let img = []
app.AjaxRequest('get', {
'content-type': 'application/json',
'Authorization': 'Bearer ' + app.Getopenid()
}, '/suggestion/list?id=' + e.id, {}, function (res) {
if (res.code == 0) {
res.data[0].images.forEach(item => {
img.push(app.IMG_NAME + item.name)
})
console.log(img)
that.setData({
repairList: res.data[0],
imgUrl: img
})
}
})
},
//滑动切换
swiperTab(e) {
var that = this
that.setData({
currentTab: e.detail.current
})
},
//点击切换
clickTab(e) {
var that = this
if (this.data.currentTab === e.target.dataset.current) {
return false
} else {
that.setData({
currentTab: e.target.dataset.current
})
}
},
previewImg(e) {
//获取当前图片的下标
var index = e.currentTarget.dataset.index
//所有图片
var imgs = this.data.imgUrl
wx.previewImage({
//当前显示图片
current: imgs[index],
//所有图片
urls: imgs
})
},
repairapply(e) {
wx.navigateTo({
url: '../evaluate/evaluate?id=' + e.currentTarget.dataset.id,
})
}
})

View File

@ -0,0 +1,4 @@
{
"usingComponents": {},
"navigationBarTitleText": "园区建议进度"
}

View File

@ -0,0 +1,26 @@
<scroll-view scroll-y="true">
<view class='weui-cell-third'>
<view style="background: white;font-size: 32rpx;padding: 4%">
<text style="font-size:30rpx;color:black;">建议单号:</text>
<text style="font-size:30rpx;color:black;">{{repairList.sn}}</text>
</view>
<view class="wecentBor">
<view class='weui-cell-list'>
<view class='weui-cell-line'>
<view class='weui-cell-circle'>
<view></view>
</view>
<view class='weui-cell-time' style="padding-left:40rpx;">{{repairList.createTime}}</view>
<view class='weui-cell-event' style="padding-left:30rpx;margin-top: 20rpx;">
<block wx:for="{{imgUrl}}" wx:key='index'>
<view style="width:300rpx;height: 200rpx">
<image src="/images/apply02.png" mode="widthFix" style="width:100%"></image>
</view>
</block>
</view>
<view class='weui-cell-event' style="padding-top: 10rpx;">{{repairList.content}}</view>
</view>
</view>
</view>
</view>
</scroll-view>

View File

@ -0,0 +1,187 @@
.page {
position: relative;
width: 100%;
height: 100%;
background-color: #F3F3F3;
}
.next {
width: 100% !important;
height: 100rpx !important;
line-height: 100rpx !important;
position: fixed;
bottom: 18rpx;
border-radius: 0 !important;
}
.swiper-tab {
width: 100%;
background-color: white;
border-bottom: 2rpx solid #ccc;
text-align: center;
height: 88rpx;
line-height: 88rpx;
font-size: 28rpx;
}
swiper {
width: 100%;
height: 94%;
}
scroll-view {
width: 100%;
height: 100%;
background-color: #F3F3F3;
}
.swiper-tab-item {
display: inline-block;
width: 25%;
color: #4A4A4A;
}
.active {
color: #4C84FF;
border-bottom: 4rpx solid #4C84FF;
}
.contenBox {
background-color: white;
padding: 2% 4%;
margin-top: 20rpx;
position: relative;
}
.evaluate {
border: 1rpx solid #4C84FF;
color: #4C84FF;
width: 140rpx;
height: 64rpx;
text-align: center;
line-height: 64rpx;
border-radius: 8rpx;
position: absolute;
bottom: 6%;
right: 2%;
}
.padding2 {
border-radius: 20rpx;
background-color: white;
padding: 6% 4%;
box-sizing: border-box;
margin-bottom: 10rpx;
line-height: 50rpx;
}
.imageContent {
width: 100%;
display: flex;
flex-wrap: wrap;
margin: 20rpx 0;
}
.image {
width: 31%;
padding: 4rpx;
height: 200rpx !important;
overflow: hidden;
position: relative;
}
.weui-cell-third {
min-height: 100%;
background-color: #f0f0f0;
}
.page__title {
padding: 30rpx;
background-color: #ffffff;
margin-bottom: 10rpx;
}
.page__title>view:first-child {
text-align: center;
font-size: 35rpx;
color: #2fb69d;
font-weight: 700;
}
.page__title>view:last-child {
display: flex;
justify-content: center;
align-items: center;
padding-top: 30rpx;
color: #999999;
}
.weui-cell-list {
padding: 0 30rpx;
overflow: hidden;
}
.wecentBor {
padding-top: 40rpx;
background: #fff;
}
.weui-cell-line {
margin-left: 5px;
float: left;
border-left: 1px solid #959595;
min-height: 100rpx;
margin-bottom: -10px;
position: relative;
}
.weui-cell-list:first-child .weui-cell-circle {
border: 1px solid #959595;
}
.weui-cell-list .weui-cell-circle {
position: absolute;
left: -10px;
top: 0px;
background-color: #ffffff;
width: 20px;
height: 20px;
border: 0;
border-radius: 10px;
display: flex;
justify-content: center;
align-items: center;
}
.weui-cell-circle>view {
border: 1px solid #959595;
border-radius: 5px;
width: 10px;
height: 10px;
background-color: #959595;
border-color: 2fb69d;
}
.weui-cell-time {
/* float: left; */
display:inline-block;
font-size: 14px;
/* padding-left: 30rpx; */
}
.weui-cell-event {
padding-left: 40rpx;
/* width: calc(100% - 200rpx); */
padding-bottom: 40rpx;
color: #939393;
}
.weui-cell-list:last-child .weui-cell-line {
border: 0;
}
.images{
height: 40rpx;
width: 40rpx;
overflow: hidden;
display: inline-block
}

View File

@ -0,0 +1,160 @@
let app = getApp()
Page({
/**
* 页面的初始数据
*/
data: {
cursor: 0,
hideAdd: 0,
ismodify: false,
imgUrl: [],
content: '',
num: 0,
imgUrls: []
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(e) {
let that = this
app.AjaxRequest('get', {
'content-type': 'application/json',
'Authorization': 'Bearer ' + app.Getopenid()
}, '/repair/add', {}, function (res) {
if (res.code == 0) {
that.setData({
parkName: wx.getStorageSync('parkName'),
member: res.data
})
}
})
},
bindTextAreaBlur(e) {
this.setData({
content: e.detail.value,
'member.content': e.detail.value
})
},
headerInput(e) {
var value = e.detail.value
var name = e.currentTarget.dataset.name
this.setData({
["member." + e.currentTarget.dataset.name]: value
})
},
previewImg(e) {
//获取当前图片的下标
var index = e.currentTarget.dataset.index
//所有图片
var imgs = this.data.imgUrl
console.log(imgs[index])
wx.previewImage({
//当前显示图片
current: imgs[index],
//所有图片
urls: imgs
})
},
chooseimage: function () {
var that = this
let imgUrl = that.data.imgUrl
var num = 9 - imgUrl.length
wx.chooseImage({
count: num, // 默认9
sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
success: function (res) {
//把每次选择的图push进数组
for (let i = 0; i < res.tempFilePaths.length; i++) {
imgUrl.push(res.tempFilePaths[i])
}
if (imgUrl.length == 9) {
that.setData({
hideAdd: 1
})
} else {
that.setData({
hideAdd: 0
})
}
that.setData({
imgUrl
})
}
})
},
delImg(e) {
let index = e.currentTarget.dataset.index
let imgUrl = this.data.imgUrl
imgUrl.splice(index, 1)
this.setData({
imgUrl
})
},
modify() {
var ismodify = this.data.ismodify
this.setData({
ismodify: ismodify == true ? false : true
})
},
apply() {
let that = this
let member = that.data.member
var img = []
if (!member.content) {
wx.showToast({
icon: 'none',
title: '请输入问题和建议',
})
return false
}
if (that.data.imgUrl.length > 0) {
var num = 0
that.data.imgUrl.forEach(item => {
app.Upload(item, function (res) {
if (res.code == 0) {
img.push({
name: res.fileName,
url: res.url,
uid: num
})
that.setData({
imgUrls: img
})
num++
}
if (num == that.data.imgUrl.length) {
that.savefun()
}
})
})
} else {
that.savefun()
}
},
savefun() {
let that = this
let member = that.data.member
app.AjaxRequest('POST', {
'content-type': 'application/json',
'Authorization': 'Bearer ' + app.Getopenid()
}, '/suggestion/save', {
content: that.data.content,
images: that.data.imgUrls
}, function (res) {
if (res.code == 0) {
wx.showToast({
title: '提交成功',
icon: 'none',
success: (res) => {
wx.navigateBack()
}
})
}
})
}
})

View File

@ -0,0 +1,4 @@
{
"usingComponents": {},
"navigationBarTitleText": "园区建议"
}

View File

@ -0,0 +1,24 @@
<scroll-view scroll-y="true" class="page">
<view style="width:100%;margin:20rpx auto;background:white;padding:4%;box-sizing:border-box;">
<view style="margin-bottom:10rpx;display:flex;">
<view style="width:26%;">问题和建议:</view>
<textarea style="height:200rpx;line-height:20rpx;" bindinput="bindTextAreaBlur"
placeholder="请详细描述您遇到的问题以便我们更好为您解决200字内" value="{{content}}" maxlength='200'></textarea>
</view>
<!-- <view style="text-align:right">
<text>{{cursor}}</text>
<text class="textcolor">/200</text>
</view> -->
<view class="imageContent">
<image wx:for="{{imgUrl}}" wx:key='index' data-index="{{index}}" src="{{item}}" mode='widthFix' class="image"
bindtap="previewImg">
<view style="position:absolute;top:10rpx;right:10rpx;" catchtap="delImg" data-index="{{index}}">
<text class="iconfont iconcha" style="color:white;font-size:26rpx"></text>
</view>
</image>
<image wx:if="{{hideAdd == 0}}" bindtap="chooseimage" src='../../../images/add.png' class='image'></image>
</view>
</view>
<view class="btn" bindtap="apply">立即提交</view>
</scroll-view>

View File

@ -0,0 +1,81 @@
.page {
width: 100%;
height: 100%;
background-color: #F3F3F3;
font-size: 28rpx;
}
.borderBottoms{
border-bottom: 1rpx solid #F5F6F8;
}
.contenBox {
position: relative;
background-color: white;
padding: 4% 6%;
margin: 20rpx 0;
}
.modify {
font-size: 24rpx;
border: 1rpx solid #4C84FF;
color: #4C84FF;
width: 100rpx;
height: 44rpx;
text-align: center;
line-height: 44rpx;
border-radius: 50rpx;
position: absolute;
top: 30%;
right: 6%;
}
.btn {
font-size: 30rpx;
width: 90%;
line-height: 100rpx;
background-color: #4C84FF;
color: white;
text-align: center;
border-radius: 50rpx;
margin: 0 auto;
margin-top: 40rpx;
margin-bottom: 40rpx;
}
input,
textarea {
width: 80%;
display: inline-block;
}
.imageContent {
width: 100%;
display: flex;
flex-wrap: wrap;
margin: 20px 0;
}
.image {
width: 31%;
padding: 4rpx;
height: 200rpx !important;
overflow: hidden;
position: relative;
}
.headerInput {
width: 60%;
height: 100%;
/* background: #F3F3F3; */
border-radius: 8rpx;
/* border: 1rpx solid #A5A5A5; */
padding-left: 20rpx;
}
.headerBox {
padding: 20rpx 0;
height: 60rpx;
line-height: 60rpx;
display: flex
}

View File

@ -0,0 +1,40 @@
Component({
options: {
multipleSlots: true
},
properties: {
isCurent:{
type: Boolean,
value: false
},
isShowLeftLine: {
type: Boolean,
value: true
},
axisTitle: {
type: String,
value: ''
},
axisTime:{
type: String,
value: ''
},
textArray:{
type: Array,
value:[]
}
},
data: {
},
ready() {
console.log( this.data.textArray)
},
methods: {
}
})

View File

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

View File

@ -0,0 +1,19 @@
<view class='itemTimeZ'>
<!-- 左边 -->
<view class='leftView'>
<view class='{{isCurent===true?"roundVIew":"outRoundVIew"}}'></view>
<view wx:if="{{isShowLeftLine}}" class='leftLine'>
</view>
</view>
<!-- 右边 -->
<view class='rightContent'>
<slot name="rightChilren"></slot>
<block wx:if="{{textArray.length>0}}">
<text wx:for="{{textArray}}" wx:key="unique"
class='{{isCurent === true? "curentTitle" : "outTitle"}}'>{{item}}</text>
</block>
<text wx:if="{{axisTitle!=''}}" class='{{isCurent === true? "curentTitle" : "outTitle"}}'>{{axisTitle}}</text>
<text class='{{isCurent === true? "curentTime" : "outTime"}}'>{{axisTime}}</text>
</view>
</view>

View File

@ -0,0 +1,68 @@
.itemTimeZ {
display: flex;
flex: 1;
padding: 0px 15px 0 15px;
}
.leftView {
display: flex;
flex-direction: column;
}
.roundVIew {
width: 9px;
height: 9px;
border-radius: 4.5px;
background: red;
}
.outRoundVIew {
width: 9px;
height: 9px;
border-radius: 4.5px;
background: #999;
}
.leftLine {
display: flex;
flex: 1;
width: 1px;
margin-left: 3.5px;
padding-bottom: 6px;
background: #DADADA;
}
.rightContent {
display: flex;
flex: 1;
flex-direction: column;
margin-top: -6px;
margin-left: 15px;
padding-bottom: 24px;
}
.curentTitle {
font-size: 16px;
line-height: 22.5px;
color: #fe473c
}
.curentTime {
font-size: 14px;
color: #fe473c
}
.outTitle {
font-size: 16px;
line-height: 22.5px;
color: #999
}
.outTime {
font-size: 14px;
color: #999
}

View File

@ -0,0 +1,56 @@
let app = getApp()
Page({
/**
* 页面的初始数据
*/
data: {
DOMAIN_NAME: app.DOMAIN_NAME,
currentTab: 0,
homelist: [],
name: ''
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
this.getList()
},
getList(searchValue) {
var that = this
app.AjaxRequest('post', {
'content-type': 'application/json'
}, '/user/search_customer', {
searchValue
}, function (res) {
if (res.code == 0) {
that.setData({
homelist: res.data
})
}
})
},
navDetail(e) {
const eventChannel = this.getOpenerEventChannel()
let homelist = this.data.homelist
let index = e.currentTarget.dataset.index
console.log(e)
wx.navigateBack({
url: '../logs/logs',
success() {
eventChannel.emit('acceptDataFromOpenedPage', {
data: homelist[index]
})
}
})
},
getName(e) {
this.setData({
name: e.detail.value
})
},
search() {
this.getList(this.data.name)
}
})

View File

@ -0,0 +1,4 @@
{
"usingComponents": {},
"navigationBarTitleText": "选择企业"
}

View File

@ -0,0 +1,20 @@
<view class='borderTop borderBottom' style='height:100rpx;background:white;display:flex'>
<input type="text" bindinput="getName"/>
<view style="width:22%;text-align:center;line-height:100rpx;font-size:30rpx;color:#6C6C6C" bindtap="search">搜索</view>
</view>
<scroll-view style="height:92%;background:white;" scroll-y="true">
<view wx:for='{{homelist}}' wx:key="index" data-index="{{index}}" bindtap="navDetail">
<view class="detailbox">
<view class="{{item.border? '':'borderBottom'}}" style="margin-left:22%;padding: 3% 0;">
<view class="titleC"
style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis;font-size:12pt;margin:0;">{{item.name}}
</view>
<view class="detailTextC">{{item.sector}}</view>
<view class="detailTextC">{{item.parkName}}</view>
<image src="/images/user-unlogin.png"
style="width:100rpx;height:100rpx;overflow:hidden;border-radius:50%;position:absolute;top:38rpx;left:36rpx;"
mode="widthFix"></image>
</view>
</view>
</view>
</scroll-view>

View File

@ -0,0 +1,13 @@
.detailbox{
position: relative;
}
input{
width: 72%;
height: 80rpx;
margin-top: 10rpx;
margin-left: 6%;
background-color: #F3F3F3;
border-radius: 8rpx;
box-sizing: border-box;
padding-left: 20rpx;
}

View File

@ -0,0 +1,112 @@
let app = getApp()
Page({
data: {
IMG_NAME: app.IMG_NAME,
// 轮播
bannerUrls: [{
url: 'https://www.71big.com/heqing/zhaojingwang/common/images/banner1.jpg',
linkUrl: ''
},
{
url: 'https://www.71big.com/heqing/zhaojingwang/common/images/banner1.jpg',
linkUrl: ''
},
{
url: 'https://www.71big.com/heqing/zhaojingwang/common/images/banner1.jpg',
linkUrl: ''
}
],
loading: false,
noMore: 0,
loadingFailed: false,
pageNo: 1,
indicatorDots: true,
autoplay: true,
interval: 3000,
duration: 1000,
type: '1',
list: [],
myOrderList: []
},
onLoad(e) {
wx.setNavigationBarTitle({
title: '服务',
})
let that = this
if (e.type) {
that.setData({
type: '2'
})
wx.setNavigationBarTitle({
title: '我的服务',
})
}
},
onShow(e) {
var that = this
app.AjaxRequest('get', {
'content-type': 'application/json',
'Authorization': 'Bearer ' + app.Getopenid()
}, '/menu/list', {}, function (res) {
that.setData({
list: res.data
})
})
},
bannernav(e) {
wx.navigateTo({
url: e.currentTarget.dataset.uri,
})
},
//轮播高度自适应——获取图片高度
imgHeight: function (e) {
var winWid = wx.getSystemInfoSync().windowWidth; //获取当前屏幕的宽度
var imgh = e.detail.height; //图片高度
var imgw = e.detail.width; //图片宽度
var swiperH = winWid * imgh / imgw + "px"
this.setData({
Height: swiperH //设置高度
})
},
changeType(e) {
this.setData({
type: e.currentTarget.dataset.type
})
if (e.currentTarget.dataset.type == 2) {
wx.setNavigationBarTitle({
title: '我的服务',
})
}
},
navapply(e) {
let data = JSON.stringify(e.currentTarget.dataset.objlist)
wx.navigateTo({
url: '../enterpriseServices/serviceList/serviceList?data=' + data,
})
},
navDetail(e) {
wx.navigateTo({
url: '../enterpriseServices/serviceDetail/serviceDetail?id=' + e.currentTarget.dataset.id,
})
},
//请求数据
getData(isPage) {
let that = this
let params = {
pageNum: that.data.pageNo,
pageSize: 10
}
that.setData({
loading: false
})
},
scrollToLower: function (e) {
if (!this.data.loading && !this.data.noMore) {
this.setData({
loading: true,
pageNo: this.data.pageNo + 1
})
this.getData(true);
}
},
})

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