加入团队、客户详情等

master
yujialong 3 years ago
parent 9c5e42e25b
commit 8dc0a26185
  1. 2
      apis/request.js
  2. 2
      config/request.js
  3. 113
      pages.json
  4. 121
      pages/clientDetail/clientDetail.vue
  5. 37
      pages/login/login.vue
  6. 94
      pages/person/person.vue
  7. BIN
      static/image/avatar.png
  8. BIN
      static/image/person-bg.png
  9. BIN
      static/image/person1.png
  10. BIN
      static/image/person2.png
  11. BIN
      static/image/person3.png
  12. BIN
      static/image/tab1-1.png
  13. BIN
      static/image/tab1.png
  14. BIN
      static/image/tab2-1.png
  15. BIN
      static/image/tab2.png
  16. BIN
      static/image/tab3-1.png
  17. BIN
      static/image/tab3.png
  18. BIN
      static/login-bg.png
  19. BIN
      static/phone.png
  20. BIN
      static/wechat.png
  21. 55
      styles/common.scss

@ -35,7 +35,7 @@ const request = options => {
fail: err => { fail: err => {
uni.showToast({ uni.showToast({
title: '请求失败!', title: '请求失败!',
icon: 'fail' icon: 'none'
}) })
reject(err) reject(err)
}, },

@ -5,7 +5,7 @@
*/ */
export default { export default {
baseURL: 'http://192.168.31.137:9000/', baseURL: 'http://192.168.31.151:9000/',
headers: { headers: {
'Content-Type': 'application/json;charset=UTF-8' 'Content-Type': 'application/json;charset=UTF-8'
}, },

@ -1,13 +1,21 @@
{ {
"pages": [ "pages": [
{ {
"path" : "pages/invite/invite", "path" : "pages/orderDetail/orderDetail",
"style" : "style" :
{ {
"navigationBarTitleText": "加入团队", "navigationBarTitleText": "订单详情",
"enablePullDownRefresh": false "enablePullDownRefresh": false
} }
}, },
{
"path" : "pages/clientDetail/clientDetail",
"style" :
{
"navigationBarTitleText": "客户详情",
"enablePullDownRefresh": false
}
},
{ {
"path" : "pages/clients/clients", "path" : "pages/clients/clients",
"style" : "style" :
@ -23,6 +31,36 @@
"navigationBarTitleText": "订单列表", "navigationBarTitleText": "订单列表",
"enablePullDownRefresh": false "enablePullDownRefresh": false
} }
},
{
"path" : "pages/plans/plans",
"style" :
{
"navigationBarTitleText": "产品方案",
"enablePullDownRefresh": false
}
},
{
"path" : "pages/person/person",
"style" :
{
"navigationBarTitleText": "我的",
"enablePullDownRefresh": false
}
},
{
"path": "pages/index/index",
"style": {
"navigationBarTitleText": "首页"
}
},
{
"path" : "pages/invite/invite",
"style" :
{
"navigationBarTitleText": "加入团队",
"enablePullDownRefresh": false
}
}, },
{ {
"path" : "pages/qrcode/qrcode", "path" : "pages/qrcode/qrcode",
@ -55,20 +93,6 @@
"navigationBarTitleText": "添加成员", "navigationBarTitleText": "添加成员",
"enablePullDownRefresh": false "enablePullDownRefresh": false
} }
},
{
"path": "pages/index/index",
"style": {
"navigationBarTitleText": "首页"
}
},
{
"path" : "pages/orderDetail/orderDetail",
"style" :
{
"navigationBarTitleText": "订单详情",
"enablePullDownRefresh": false
}
}, },
{ {
"path" : "pages/password/password", "path" : "pages/password/password",
@ -86,14 +110,6 @@
"enablePullDownRefresh": false "enablePullDownRefresh": false
} }
}, },
{
"path" : "pages/plans/plans",
"style" :
{
"navigationBarTitleText": "产品方案",
"enablePullDownRefresh": false
}
},
{ {
"path" : "pages/teams/teams", "path" : "pages/teams/teams",
"style" : "style" :
@ -109,14 +125,6 @@
"navigationBarTitleText": "新建订单", "navigationBarTitleText": "新建订单",
"enablePullDownRefresh": false "enablePullDownRefresh": false
} }
},{
"path" : "pages/clientDetail/clientDetail",
"style" :
{
"navigationBarTitleText": "客户详情",
"enablePullDownRefresh": false
}
}, },
{ {
"path" : "pages/ordered/ordered", "path" : "pages/ordered/ordered",
@ -126,14 +134,6 @@
"enablePullDownRefresh": false "enablePullDownRefresh": false
} }
}
,{
"path" : "pages/person/person",
"style" :
{
"navigationBarTitleText": "我的",
"enablePullDownRefresh": false
}
}, },
{ {
"path" : "pages/detail/detail", "path" : "pages/detail/detail",
@ -143,6 +143,15 @@
"enablePullDownRefresh": false "enablePullDownRefresh": false
} }
} }
,{
"path" : "pages/login/login",
"style" :
{
"navigationBarTitleText": "",
"enablePullDownRefresh": false
}
}
], ],
"condition": { // "condition": { //
"current": 0, //list "current": 0, //list
@ -152,33 +161,35 @@
}] }]
}, },
"globalStyle": { "globalStyle": {
"navigationBarTextStyle": "black", "navigationBarTextStyle": "white",
"navigationBarTitleText": "或然CRM系统", "navigationBarTitleText": "或然CRM系统",
"navigationBarBackgroundColor": "#F8F8F8", "navigationBarBackgroundColor": "#007EFF",
"backgroundColor": "#f5f5f5", "backgroundColor": "#f5f5f5",
"app-plus": { "app-plus": {
"background": "#efeff4" "background": "#efeff4"
} }
}, },
"tabBar": { "tabBar": {
"color": "#7A7E83", "color": "#B8B9B8",
"selectedColor": "#0070ff", "selectedColor": "#007FFF",
"borderStyle": "black", "borderStyle": "white",
"backgroundColor": "#ffffff", "backgroundColor": "#ffffff",
"height": "100px",
"spacing": "10px",
"list": [{ "list": [{
"pagePath": "pages/index/index", "pagePath": "pages/index/index",
// "iconPath": "static/image/icon_component.png", "iconPath": "static/image/tab1.png",
// "selectedIconPath": "static/image/icon_component_HL.png", "selectedIconPath": "static/image/tab1-1.png",
"text": "首页" "text": "首页"
}, { }, {
"pagePath": "pages/teams/teams", "pagePath": "pages/teams/teams",
// "iconPath": "static/image/icon_API.png", "iconPath": "static/image/tab2.png",
// "selectedIconPath": "static/image/icon_API_HL.png", "selectedIconPath": "static/image/tab2-1.png",
"text": "团队" "text": "团队"
}, { }, {
"pagePath": "pages/person/person", "pagePath": "pages/person/person",
// "iconPath": "static/image/icon_API.png", "iconPath": "static/image/tab3.png",
// "selectedIconPath": "static/image/icon_API_HL.png", "selectedIconPath": "static/image/tab3-1.png",
"text": "我的" "text": "我的"
}] }]
} }

@ -8,54 +8,66 @@
</view> </view>
</uni-card> </uni-card>
<uni-section title="基本信息" type="line"> <view class="form-list">
<view class="form"> <view class="line">
<uni-forms ref="form" :modelValue="form" :rules="rules" label-width="100" disabled> <view class="l-title">基本信息</view>
<uni-forms-item label="客户名称" name="schoolId" required>
<uni-easyinput v-if="isDetail" v-model="form.customerName" disabled />
<view v-else :class="['school-input', {active: form.customerName}]" @click="schoolVisible = true">{{ form.customerName || '请选择学校' }}</view>
</uni-forms-item>
<uni-forms-item label="省份">
<uni-easyinput v-model="form.provinceName" disabled />
</uni-forms-item>
<uni-forms-item label="城市">
<uni-easyinput v-model="form.cityName" disabled />
</uni-forms-item>
<uni-forms-item label="行业类型" name="industryClassId" required>
<uni-easyinput v-if="isDetail" v-model="form.industryClassName" disabled />
<uni-data-picker v-else placeholder="请选择行业类型" popup-title="请选择行业类型" preload :clear-icon="false" :localdata="industryClassList" :map="{text: 'industryClassName', value: 'industryClassId'}" v-model="form.industryClassId" @change="industryClassChange">
</uni-data-picker>
</uni-forms-item>
<uni-forms-item label="行业" name="industryId" required>
<uni-easyinput v-if="isDetail" v-model="form.industryName" disabled />
<uni-data-picker v-else placeholder="请选择行业" popup-title="请选择行业" preload :clear-icon="false" :localdata="industryList" :map="{text: 'industryName', value: 'industryId'}" v-model="form.industryId" :readonly="form.industryClassId ? false : true">
</uni-data-picker>
</uni-forms-item>
<uni-forms-item label="联系人姓名" name="name" required>
<uni-easyinput ref="nameInput" placeholder="请输入联系人姓名" :disabled="isDetail" />
</uni-forms-item>
<uni-forms-item label="手机" name="phone">
<uni-easyinput ref="phoneInput" placeholder="请输入手机" :disabled="isDetail" />
</uni-forms-item>
<uni-forms-item label="账号" name="account" required>
<uni-easyinput ref="accountInput" placeholder="请以院校首字母+admin的格式来设置" :disabled="isDetail" />
</uni-forms-item>
<uni-forms-item label="职务" name="position">
<uni-easyinput ref="positionInput" placeholder="请输入职务" :disabled="isDetail" />
</uni-forms-item>
<uni-forms-item label="邮箱" name="email">
<uni-easyinput ref="emailInput" placeholder="请输入邮箱" :disabled="isDetail" />
</uni-forms-item>
<uni-forms-item label="产品到期时间">
<uni-easyinput v-model="form.expireDate" disabled />
</uni-forms-item>
<uni-forms-item label="客户类型">
<uni-easyinput v-model="customerType" disabled />
</uni-forms-item>
</uni-forms>
<button v-if="!isDetail" type="primary" @click="submit">提交</button>
</view> </view>
</uni-section> <view class="line req">
<view class="name">客户名称</view>
<view :class="['ph', {val: form.customerName}]" @click="schoolVisible = true">{{ form.customerName || '请选择学校' }}</view>
</view>
<view class="line">
<view class="name">省份</view>
<view class="val">{{ form.provinceName }}</view>
</view>
<view class="line">
<view class="name">城市</view>
<view class="val">{{ form.cityName }}</view>
</view>
<view class="line req">
<view class="name">行业类型</view>
<view v-if="isDetail" class="val">{{ form.industryClassName }}</view>
<uni-data-picker v-else class="picker-input" placeholder="请选择行业类型" popup-title="请选择行业类型" preload :clear-icon="false" :localdata="industryClassList" :map="{text: 'industryClassName', value: 'industryClassId'}" v-model="form.industryClassId" @change="industryClassChange"></uni-data-picker>
</view>
<view class="line req">
<view class="name">行业</view>
<view v-if="isDetail" class="val">{{ form.industryName }}</view>
<uni-data-picker v-else class="picker-input" placeholder="请选择行业" popup-title="请选择行业" preload :clear-icon="false" :localdata="industryList" :map="{text: 'industryName', value: 'industryId'}" v-model="form.industryId" :readonly="form.industryClassId ? false : true"></uni-data-picker>
</view>
<view class="line req">
<view class="name">联系人姓名</view>
<view v-if="isDetail" class="val">{{ form.name }}</view>
<input v-else type="text" v-model="form.name">
</view>
<view class="line">
<view class="name">手机</view>
<view v-if="isDetail" class="val">{{ form.phone }}</view>
<input v-else type="text" v-model="form.phone">
</view>
<view class="line req">
<view class="name">账号</view>
<view v-if="isDetail" class="val">{{ form.account }}</view>
<input v-else type="text" placeholder="请以院校首字母+admin的格式来设置" v-model="form.account">
</view>
<view class="line">
<view class="name">职务</view>
<view v-if="isDetail" class="val">{{ form.position }}</view>
<input v-else type="text" v-model="form.position">
</view>
<view class="line">
<view class="name">邮箱</view>
<view v-if="isDetail" class="val">{{ form.email }}</view>
<input v-else type="text" v-model="form.email">
</view>
<view class="line">
<view class="name">产品到期时间</view>
<view class="val">{{ form.expireDate }}</view>
</view>
<view class="line">
<view class="name">客户类型</view>
<view class="val">{{ customerType }}</view>
</view>
</view>
<view class="action" v-if="isDetail"> <view class="action" v-if="isDetail">
<view class="item" @click="toPage(`../clientDetail/clientDetail?customerId=${customerId}`)"> <view class="item" @click="toPage(`../clientDetail/clientDetail?customerId=${customerId}`)">
@ -321,10 +333,6 @@
color: #333; color: #333;
} }
} }
.form {
padding: 15px;
background-color: #fff;
}
.action { .action {
z-index: 2; z-index: 2;
position: fixed; position: fixed;
@ -343,17 +351,6 @@
color: #959595; color: #959595;
} }
} }
.school-input {
padding: 0 10px;
font-size: 12px;
line-height: 34px;
color: #ccc;
border: 1px solid #e5e5e5;
border-radius: 4px;
&.active {
color: #333;
}
}
.mask { .mask {
z-index: 9; z-index: 9;
position: fixed; position: fixed;

@ -0,0 +1,37 @@
<template>
<view class="page">
<view class="wrap">
<view class="hello">Hi或然科技城市合伙人请登录备份</view>
<view class="btn wechat">
<image src="../../static/wechat.png" mode=""></image>
微信授权登录
</view>
<view class="btn phone">
<image src="../../static/phone.png" mode=""></image>
手机账号登录
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
}
}
</script>
<style scoped lang="scss">
.page {
background: url(../../static/login-bg.png) 0 0/100% 500px no-repeat;
}
.wrap {
margin-top: 350px;
}
</style>

@ -1,6 +1,37 @@
<template> <template>
<view> <view class="page">
<image class="bg" src="../../static/image/person-bg.png"></image>
<view class="wrap">
<view class="info">
<image class="avatar" src="../../static/image/avatar.png" mode=""></image>
<view class="text">
<view class="name">仲达</view>
<view class="phone">1356231564</view>
</view>
</view>
<view class="list">
<view class="item">
<view class="left">
<image class="icon" src="../../static/image/person1.png" mode=""></image>
<text class="name">我的收益</text>
</view>
<text class="val">231323</text>
</view>
<view class="item">
<view class="left">
<image class="icon" src="../../static/image/person2.png" mode=""></image>
<text class="name">团队收益</text>
</view>
<text class="val">231323</text>
</view>
<view class="item" @click="$util.to('../setting/setting')">
<view class="left">
<image class="icon" src="../../static/image/person3.png" mode=""></image>
<text class="name">设置</text>
</view>
</view>
</view>
</view>
</view> </view>
</template> </template>
@ -17,6 +48,61 @@
} }
</script> </script>
<style> <style scoped lang="scss">
.bg {
width: 100%;
height: 300rpx;
}
.wrap {
z-index: 2;
position: relative;
padding: 0 24rpx;
margin-top: -150rpx;
}
.info {
display: flex;
align-items: center;
padding: 26rpx 34rpx;
background-color: #fff;
border-radius: 16rpx;
.avatar {
width: 120rpx;
height: 120rpx;
margin-right: 28rpx;
}
.name {
margin-bottom: 10rpx;
font-size: 40rpx;
color: #333;
}
.phone {
font-size: 28rpx;
color: #333;
}
}
.list {
margin-top: 16rpx;
.item {
display: flex;
justify-content: space-between;
align-items: center;
padding: 26rpx 28rpx;
margin-bottom: 16rpx;
background-color: #fff;
border-radius: 16rpx;
}
.left {
display: inline-flex;
align-items: center;
}
.icon {
width: 48rpx;
height: 48rpx;
margin-right: 16rpx;
}
text {
font-size: 28rpx;
color: #333;
}
}
</style> </style>

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 702 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 724 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 790 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 805 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 367 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 698 B

@ -2,6 +2,61 @@ button[type=primary] {
background-color: #007eff; background-color: #007eff;
} }
.l-title {
display: flex;
align-items: center;
font-size: 28rpx;
color: #333;
&:before {
content: '';
width: 6rpx;
height: 28rpx;
margin-right: 12rpx;
vertical-align: middle;
background-color: #4876F9;
}
}
.form-list {
padding: 0 24rpx;
margin: 20rpx 24rpx;
border-radius: 16rpx;
background-color: #fff;
.line {
display: flex;
justify-content: space-between;
align-items: center;
padding: 28rpx 0;
border-bottom: 1px solid #E6E8ED;
&:last-child {
border-bottom: 0;
}
}
.ph {
font-size: 28rpx;
color: #999;
}
.name, .val, input {
font-size: 28rpx;
color: #333;
}
input {
flex: 1;
margin-left: 20rpx;
text-align: right;
}
.req {
.name:after {
content: '*';
margin-left: 3px;
color: #F53232;
vertical-align: middle;
}
}
}
.picker-input .input-value-border {
line-height: 1;
border: 0;
}
.tab { .tab {
display: flex; display: flex;
justify-content: space-around; justify-content: space-around;

Loading…
Cancel
Save